Getting Started

AgM9036 IVI Driver Reference |
Getting Started | Agilent Technologies

Welcome to the AgM9036 version 1.0.1.1 IVI driver. Agilent's IVI drivers simplify the creation and maintenance of instrument control applications in a variety of development environments. IVI drivers allow you to programmatically control your instrumentation while providing a greater degree of instrument interchangeability and code reuse.

IVI Overview

General, basic information on IVI driver features as well as installing and configuring IVI drivers for use in an end-user application.
  • IVI Backgrounder - Presents an overview of IVI topics and concepts for driver developers including introductory information on the IVI Foundation standards and specifications.
  • Installation - Explains where IVI drivers are installed and what components are required.
  • IVI Compliance Information - Provides IVI-required compliance information for the AgM9036 driver.
  • Configuring the Driver - Provides information on using the IVI Configuration Store with the AgM9036 driver.

Programming with the AgM9036 Driver

Basics of programming this driver including example code. How to: Reference the Driver, Create an Instance of the Driver, Initialize the Driver, and Access Items of Various Data Types
  • Programming with the IVI-COM Driver - Using the IVI-COM driver in the following application development environments: Visual C#, Visual C++, Visual Basic.NET, Visual Basic 6, Agilent VEE Pro, LabVIEW, MATLAB
  • Programming with the IVI-C Driver - Using the IVI-C driver in the following application development environments: Visual C++, LabWindow/CVI, LabVIEW, MATLAB, .NET

AgM9036 Driver Reference

Detailed help on each item in the driver.
  • IVI-COM Driver Reference
  • IVI-C Driver Reference

Web Sites

  • Agilent Technologies Home Page
    • IVI Drivers & Components Downloads
    • Agilent I/O Libraries Suite
    • GPIB, USB, & Instrument Control Products
    • Agilent VEE Pro
    • Technical Support, Manuals, & Downloads
    • Contact Agilent Test & Measurement
  • IVI Foundation - Usage Guides, Specifications, Shared Components Downloads
  • MSDN Online
Copyright 2011 Agilent Technologies. All rights reserved.


IVI Backgrounder

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IVI Backgrounder

The IVI Foundation is an open consortium founded in 1998 to promote standards for programming test instruments. Composed primarily of instrument manufacturers, end-users, software vendors, and system integrators, the Foundation strives to create specifications that govern the development of instrument drivers.

IVI-compliant drivers offer a number of benefits, such as a consistent programming interface, better performance, seamless integration into a wide variety of development environments, and interchangeability. Interchangeability refers to the ability of an end user to replace one IVI driver in an application program with another IVI driver from a different vendor, without modifying or even recompiling the application program. To achieve interchangeability, IVI driver developers must carefully follow all of the requirements laid out in the IVI Foundation specifications.

The following sections present an overview of some of the most important IVI topics for driver developers. This document does not attempt to reproduce all of the details contained in the IVI specifications. For complete information on IVI and for the most up-to-date versions of all IVI specifications and components, visit the IVI Foundation web site.

In This Section

What All IVI Drivers Do -- Inherent Capabilities

Explains how to basic functionality that all IVI drivers support.

Two Flavors of IVI -- IVI-COM and IVI-C

Compares IVI-COM and IVI-C drivers.

How IVI Drivers Provide Interchangeability

Explains the basics of how interchangeability works with IVI-COM and IVI-C.

Instrument-Specific Capabilities

Provides a brief explanation of non-interchangeable device-specific functionality in IVI drivers.

IVI Shared Components

Provides an introduction to the shared software components required for an IVI-based system.

Repeated Capabilities

Explains IVI repeated capabilities along with the notions of physical and virtual names.

LXI Fundamentals

Presents an introduction to the LXI standards and how they relate to IVI drivers.


What All IVI Drivers Do -- Inherent Capabilities

[image]

AgM9036 IVI Driver Reference Agilent Technologies
What All IVI Drivers Do -- Inherent Capabilities

The IVI Foundation has established a set of functions and attributes that all IVI drivers must support -- irrespective of which IVI instrument class the driver supports. These common functions and attributes are called IVI inherent capabilities and they are documented in IVI-3.2 -- Inherent Capabilities Specification. Importantly, drivers that do not support any IVI instrument class must still support the IVI inherent capabilities.

Having a common set of basic functionality that all IVI drivers must support ensures that end users have a standard, recognizable way to perform basic operations with the IVI driver. If an end user has programmed with an IVI driver of any type before, they will immediately know how to perform at least basic tasks with any new IVI driver they encounter. Some of the tasks that fall under the inherent capabilities specification are:

  • Initializing the driver.
  • Querying errors from the driver.
  • Enabling standard driver features, such as simulation, state caching, and range checking.
  • Identifying the capabilities of the driver, such as the supported instrument classes, capability groups.
  • Reading driver and instrument identification information.
  • Performing instrument self-test and reset operations.

A detailed description of the IVI inherent capabilities can be found in the Reference section under the topic IviDriver.

Standard Driver Features

IVI drivers may offer several different features whose behavior has been standardized by the IVI Foundation. Although these are referred to as standard driver features, they are not all required to be supported by an IVI driver, as shown in the table below:

Feature | Required
State caching | No
Range checking | No
Coercion and coercion recording | No
Interchangeability checking | No
Simulation | Yes

The remainder of this topic discusses each driver feature in detail.

State Caching -- Optional

As a means to offer better performance in customer test applications, IVI drivers often support a feature known as state caching. The principle of state caching is quite simple, although in practice it can be extraordinarily difficult to implement properly.

When a end user enables state caching for an IVI driver, the driver attempts to determine if new settings passed into the driver are different from the actual instrument state. In this way, I/O traffic between the driver and the instrument is reduced, as fewer I/O calls are performed.

In the simplest example of when state caching improves performance, consider what happens when a user passes identical values several times in a row for the frequency property on a function generator driver. Without state caching, each call into the driver would result in an I/O function call to the instrument, whereas a driver performing state caching would detect that subsequent calls to the frequency property were redundant and should not result in any communication with the instrument. Correspondingly, the driver can "remember" the last known value for instrument properties so that queries can be performed by retrieving data from computer memory, rather than by performing instrument I/O.

As with caching schemes in other types of software systems, IVI driver state caching is frought with potential pitfalls. The chief challenge in properly implementing state caching is maintaining cache coherency. Complex instruments often have complex couplings between instrument settings, making it difficult for the driver to track whether or not settings stored in the driver cache are valid. Consequently, many instrument vendors choose not to implement state caching in the driver.

For more information on state caching, see IVI-3.1: Driver Architecture Specification.

Range Checking -- Optional

Range checking in IVI drivers simply refers to the ability for the driver to test whether or not input values passed to the driver are within an acceptable range. End users typically use range checking during debugging and, after validation is complete, disable it to maximize performance.

For more information on range checking, see IVI-3.1: Driver Architecture Specification.

Coercion and Coercion Recording -- Optional

Instruments often accept only a discrete set of values for certain properties. For example, a DMM might only accept values such as 10 V, 100 V, 300 V for the voltage range setting. These discrete value sets will necessarily be different for different vendor's instruments. An Agilent® DMM may accept 10 V, 100 V, 300 V while a Fluke DMM accepts 20 V, 200 V, and 400 V. As a result, IVI class specifications are forced to define such real-valued properties as accepting a continuous range of values, even though the underlying instrument only accepts a discrete set of values.

Following along with the DMM voltage range example, if a user sends a value of 150 V for the voltage range, the instrument will internally coerce the value to one of the accepted values, such as 300 V. To maximize interchangeability, the IVI class specifications provide guidance on how IVI drivers should coerce user requested values for specific properties.

To aid end users in building interchangeable applications, IVI drivers may implement a feature called coercion recording. If a user enables coercion recording, the IVI driver retains a log of each user value that it coerces. Standard functions in the IVI inherent capabilities provide the user with access to the driver's coercion log.

For more information on coercion, see IVI-3.1: Driver Architecture Specification.

Interchangeability checking -- Optional

A program written using an IVI driver will not be interchangeable if the program relies upon default settings within the instrument. This is because different instruments will have different default values for many important settings. Repeatable results can only be obtained if all of the instrument settings on which an operation depends are in a user-specified state.

IVI drivers may implement a feature called interchangeability checking to ensure that driver attributes relevant to a particular operation are in a user-specified state whenever that operation is performed. The IVI instrument class specifications all include class-specific sections detailing which driver attributes need to be in a known state for particular operations. The driver can then track these attributes and report a warning if one or more are not set explicitly by the client program before an important operation is performed.

Standard functions in the IVI inherent capabilities provide the user with the ability to enable interchangeability checking in the driver and to retrieve any warnings that occur. Typically, this feature is only used during development and debug of an application and disabled during normal operation, so as not to adversely impact performance.

For more information on interchangeability checking, see IVI-3.1: Driver Architecture Specification.

Simulation -- Required

IVI drivers are often constructed for complex instruments that are difficult to procure or that are in high demand at the end user facility. Consequently, it may be the case that end users need to be able to test their application programs without being physically connected to an instrument. IVI driver simulation is a feature that allows end users to use IVI drivers without a physical connection to the instrument.

When an end user enables simulation in an IVI driver, the driver performs no I/O communication whatsoever. IVI drivers are free in their choice of mechanisms for returning meaningful output values to the end user, but the intent is that the user program should be able to proceed normally when calling functions on the driver. This allows the end user to exercise their test application before the actual hardware is available.

For more information on simulation, see IVI-3.1: Driver Architecture Specification.


Two Flavors of IVI -- IVI-COM and IVI-C

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Two Flavors of IVI -- IVI-COM and IVI-C

IVI drivers currently come in two basic types -- IVI-COM and IVI-C. Although the functionality offered by both types of driver is often very similar, the fundamental differences in interface technology results in a very different end-user experience. This topic discusses some of the important differences between IVI-COM and IVI-C drivers.

IVI-COM and IVI-C at a Glance

The table below presents a summary of some of the important differences between IVI-COM and IVI-C drivers. A brief explanation of each point is given later in this topic.

IVI-COM IVI-C
Files Supplied
  • COM DLL (<Driver>.dll).
  • .NET DLL (<Company>.<Driver>.Interop.dll).
  • Windows DLL (<prefix>.dll).
  • Header file (<prefix>.h).
  • Import library (<prefix>.lib).
  • Function panel file (<prefix>.fp).
  • Attribute information file (<prefix>.sub).
ADEs of Choice
  • Visual C#.
  • Visual C++.
  • Visual Basic.NET.
  • LabWindows™/CVI.
.NET Support
  • Use interop assembly as per IVI specs.
  • No manual coding in client program.
  • Interchangeability supported.
  • No standard mechanism.
  • Manual coding in client program.
  • Interchangeability not possible.
Interchangeability
  • Use COM session factory.
  • No 3rd party components.
  • Multiple instrument classes per driver possible.
  • Requires 3rd-party class drivers.
  • Only one instrument class per driver.
Data Types
  • COM data types.
  • Strings and arrays are self-describing.
  • Memory can be allocated by the driver or by the client.
  • VISA data types.
  • Strings and arrays require extra parameters to indicate size.
  • Memory must be allocated by the client program.
Attribute Programming
  • Same as methods (built-in).
  • Attributes can have parameters.
  • Use attribute accessors and C macros.
  • GetAttributeViReal64, etc..
  • Attributes cannot have parameters.

IVI-COM Basics

IVI-COM drivers use Microsoft's standard COM technology to expose the driver's methods and properties. COM is a proven standard for building reusable, cross-language components on Windows. IVI-COM methods and properties are organized into interfaces that together form a hierarchy of driver functionality. IVI-COM drivers use standardized COM data types that can be understood in a wide variety of ADEs (application development environments).

IVI-COM Type Libraries

IVI-COM drivers are packaged as DLLs, like conventional Windows components. However, unlike conventional Windows components, IVI-COM DLLs contain description information about the functionality of the driver. This information is called the type library and offers such details as the name and signature of all driver functions, version information, parameter input/output direction, and even help information. Since the type library information is baked into the DLL, IVI-COM drivers are fully self-describing. This makes them easier to use in building programs because the developer only has to reference a single DLL to import the driver into their development environment. This also allows IVI-COM drivers to be used seamlessly in .NET programming languages, as is discussed later in this topic.

IVI-C Basics

IVI-C drivers are provided as conventional Windows DLLs with entry points exposed for each function supported by the driver. In addition to the DLL, IVI-C drivers include a header file (.h) and an import library (.lib). You use an IVI-C driver by including the header file in your program source code and then linking to the .lib file. IVI-C drivers use VISA data types, such as ViInt32, ViReal64, and ViChar.

IVI-C Function Panel and Attribute Files

Since IVI-C drivers rely upon basic Windows DLL technology, there is no way to represent a hierarchy of driver functionality in the DLL itself. Instead, IVI-C drivers use two additional files to present the logical organization of driver functions and attributes. The function panel file (.fp) is a variable-record binary file that presents the function hierarchy only. The attribute hierarchy is managed in a separate file called the attribute information file (.sub). The .sub file is a text file. The function and attribute hierarchies are managed separately because IVI-C development was heavily influenced by VXI Plug-n-Play driver standards, which had already established this bifurcation.

ADE Support for IVI-COM and IVI-C Drivers

Arguably the most important consideration in comparing IVI-COM and IVI-C drivers is the end user experience in various ADEs. Since IVI-COM drivers are based on Microsoft COM technology, it's not surprising that IVI-COM drivers offer the richest user experience in Microsoft ADEs. Users working in Visual C++, Visual C#, Visual Basic.NET and Visual Basic 6 will enjoy a host of features, such as object browsers, IntelliSense, and context-sensitive help.

IVI-COM drivers are also well-supported in environments targeting the test and measurement industry. Agilent® VEE® and MATLAB® provide built-in support for IVI-COM drivers, as does National Instruments® LabVIEW®. As of LabVIEW 8.0, a new feature called the Class Browser appeared, greatly simplifying the use of IVI-COM drivers in LabVIEW.

For more details on using an IVI-COM driver in various ADEs, see the topic Programming with the IVI-COM Driver in Various Development Environments.

The ADE story for IVI-C centers primarily around National Instruments LabWindows/CVI. IVI-C drivers work seamlessly in LabWindows/CVI, with built-in support for rendering the hierarchies and function panels stored in the .fp and .sub files. In all other environments, however, IVI-COM drivers provide a better user experience. LabWindows/CVI is a special case where IVI-COM drivers do not fare well. Users working in LabWindows/CVI will have a fundamental expectation that an IVI-C driver be provided for any instrument they need to use in that environment.

.NET Support and Interop Assemblies

Microsoft provides excellent .NET support for all COM components through .NET wrappers called interop assemblies. These interop assemblies are generated automatically with standard Microsoft tools (such as Visual Studio) and present a familiar .NET interface to a COM component. Since IVI-COM drivers are standard COM components, these interop assemblies can be produced for IVI-COM drivers in precisely the same way as for any other COM component. Programmers working in any .NET environment (C#, VB.NET, C++) can work with the IVI-COM driver as if it were a native .NET component.

The IVI Foundation provides a specification prescribing how this should be done, so that end users have a consistent experience with IVI-COM drivers in .NET. Please see IVI-3.14: Primary Interop Assembly Specification for details on building IVI-COM interop assemblies. More importantly, the IVI Foundation provides the interop assemblies required for achieving .NET interchangeability with IVI-COM drivers. These are installed as part of the IVI Shared Components.

In the "\IVI\Bin\Primary Interop Assemblies" subfolder of your IVI installation directory, you will find the interop assemblies for the IVI instrument classes as well as those for specific instrument drivers. The interop assemblies shipped by the IVI Foundation have names such as Ivi.Dmm.Interop.dll and Ivi.SpecAn.Interop.dll. Correspondingly, all instrument-specific interop assemblies must follow an IVI-specified convention:
<Company>.<Driver>.Interop.dll

Since IVI-C drivers are conventional Windows DLLs, there is no standard mechanism for creating .NET wrappers for IVI-C drivers. Instead, client programmers must add special declarations to their program for any IVI-C driver function they wish to use in their application. These declarations must be adorned with special .NET attributes that instruct the .NET environment on what kind of function is inside the driver. (For details on what's required to call DLL functions in .NET, see the MSDN documentation regarding the "DllImport" attribute and a featured called "P/Invoke".) The critical thing to note is that because there is no standard mechanism for creating .NET wrappers on conventional Windows DLLs, the IVI Foundation cannot supply a standard mechanism for programming against IVI-C drivers in .NET. Thus, interchangeability with IVI-C drivers in .NET is not possible.

Interchangeability

IVI-COM drivers and IVI-C drivers differ fundamentally is how they allow you to write interchangeable programs. With IVI-COM drivers, the developer references a standard, IVI Foundation-supplied DLL that defines the functions and attributes for a particular instrument class. These Foundation-supplied DLLs are referred to as the IVI-COM type libraries, and they are automatically installed as part of the IVI Shared Components. Another shared component called the COM Session Factory is used to instantiate an IVI-COM driver without having a hard-coded reference to the specific driver in use.

The topic Writing Interchangeable Code Using the NoClass Class-Compliant Interfaces provides examples on interchangeable programming with the IVI-COM driver while the topic Writing Interchangeable Code Using the NoClass Class Driver illustrates how to write interchangeable programs using the IVI-C driver.

One important distinction between IVI-COM and IVI-C drivers when considering interchangeability is the number of instrument classes a single driver can support. Some instruments actually have functionality that spans more than one instrument class. For instance, some popular switch measure units offer both IviDmm and IviSwtch functionality, so supporting both sets of IVI-defined interfaces is very useful. With IVI-COM, a single driver such an instrument can be accommodated, as IVI-COM drivers can support any number of instrument classes at once. IVI-C drivers, however, have a fundamental limitation imposed by the attribute model they use. Each attribute in IVI-C is assigned a numeric identifier, but these identifiers are only unique within an instrument class -- not between instrument classes. Because of this, an IVI-C driver would not be able to support attributes from more than one instrument class, and so only a single class can be supported by any IVI-C driver.

Data Types

IVI-COM and IVI-C drivers use two different sets of data types. IVI-COM drivers use a special subset of the COM data type system, called automation data types. Simply put, this type system is designed to allow common access from a wide range of programming languages -- from Visual Basic 6 to C++ to C#. IVI-C drivers, on the other hand, use the VISA data type system, which is based on classic C data types.

The primitive data types, such as integers, floating point numbers, and booleans are represented similarly in both IVI-COM and IVI-C drivers. The key differences are in how arrays and strings are handled. IVI-COM drivers use the SAFEARRAY data type to represent arrays and the BSTR data type to represent strings. These data types are self describing in that the SAFEARRAY contains the number of elements in the array and the BSTR contains the length of the string. This means that when passing array parameters into or out of an IVI-COM driver, no extra parameters are required to describe the array. IVI-C drivers, on the other hand, need to pass extra "size" parameters to any IVI-C function that uses an array or string. (It is also a useful note that BSTR strings are allowed to contain embedded NULL characters, whereas IVI-C ViString parameters must always be NULL-terminated.)

In the IVI-COM example below, a client program is calling an IVI-COM driver function to fetch an array of measurements from the instrument. Note how only the array parameter need be returned from the function, as the size of the array is embedded in the SAFEARRAY data type.

C++ Copy image Copy Code
double[] data;
scope.Measurement.FetchWaveform(ref data);

In the IVI-C example below, a client program is calling an IVI-C driver function to read from the instrument. In constrast to the previous IVI-COM example, the IVI-C programmer must pass in two extra parameters to describe the array -- one for the client to tell the driver the size of the input array, and one for the driver to tell the client how many array elements were returned.

C++ Copy image Copy Code
ViSession vi;
/* session initialization omitted for clarity */

ViReal64 waveform[1000];
ViInt32 waveformSize = 1000;
ViInt32 actualSize;
ViStatus status = IviScope_FetchWaveform(vi, VI_NULL, waveformSize, waveform, &actualSize);

Memory Allocation

IVI-COM and IVI-C drivers use opposite rules for memory allocation. This is important when dealing with string and array parameters. In IVI-COM, the driver typically allocates the memory associated with an output parameter, such as an array of measurement data. This is convenient for the end user because they do not need to know how much memory to allocate ahead of time. The driver simply allocates the memory required to return the output data. In some situations, such as when dealing with very large data sets, it may be desirable for the client program to pre-allocate memory and pass it to the driver. This allows memory to be reused across multiple calls to the driver. To support this use case, IVI-COM drivers allow pre-allocated memory to be passed in as well.

When using IVI-C drivers, the calling program must always allocate the memory for an output parameter. This requires the caller to know how much memory to allocate ahead of time and to pass in an extra parameter to the driver indicating the amount of memory that was allocated. This prevents the driver from writing too much data into the output parameter. The driver must then return an additional output parameter that indicates how much data was actually copied into the output buffer. It's up to the client program to determine whether or not all of the data has been retrieved.

Programming with Attributes

In both IVI-COM and IVI-C, drivers use functions and attributes to control the instrument. In both models, functions typically represent operations, such as taking a measurement, while attributes typically represent instrument settings, such as range or resolution. However, IVI-COM and IVI-C drivers have a very different model for programming attributes.

The IVI-COM model for programming attributes is straightforward. The functions and attributes are part of the same hierarchy. The user accesses an attribute using a simple assignment statement, as in the following:

C++ Copy image Copy Code
// Set the sample rate to 1000
scope.Acquisition.SampleRate = 1000;

Conventional Windows DLLs have no built-in notion of attributes, so IVI-C drivers rely upon a special idiom where dedicated "getter" and "setter" functions are used along with C macro identifiers. Every IVI-C driver supports the following standard set of attribute accessors, organized based on the data type of the attribute:

  • GetAttributeViInt32, SetAttributeViInt32
  • GetAttributeViInt64, SetAttributeViInt64
  • GetAttributeViReal64, SetAttributeViReal64
  • GetAttributeViString, SetAttributeViString
  • GetAttributeViBoolean, SetAttributeViBoolean
  • GetAttributeViSession, SetAttributeViSession

Each IVI-C attribute has an associated #define'd constant in the driver header file, and this constant is passed to the appropriate getter or setter function to read or write the attribute, as in the following example:

C++ Copy image Copy Code
ViSession vi;
/* session initialization omitted for clarity */

/* Set the sample rate to 1000 */
ViStatus status = IviScope_SetAttributeViReal64(vi, VI_NULL, IVISCOPE_ATTR_HORZ_SAMPLE_RATE, 1000);

A couple of things are noteworthy about the IVI-C attribute model. First, the programmer must take care to use the correct type of attribute setter or getter for the attribute in question. In the above example, the IVISCOPE_ATTR_HORZ_SAMPLE_RATE attribute is a double-precision floating-point value, and the end user must know this when programming with the driver. There is no way for the compiler to catch any error, such as using SetAttributeViInt32 with a boolean type attribute.

The other thing to note about the IVI-C attribute model is that since the setter and getter function signatures are fixed for all attributes, there is no way to have parameterized attributes. In contrast, IVI-COM drivers support attributes with parameters.


How IVI Drivers Provide Interchangeability

[image]

AgM9036 IVI Driver Reference Agilent Technologies
How IVI Drivers Provide Interchangeability

What is an IVI Instrument Class?

The IVI Foundation uses the term instrument class to refer to a distinct set of functionality for a canonical instrument type. Although there are many different types of instruments used in test and measurement and their functionality varies considerably, many of these instruments naturally fall into distinct categories, or types. Often these instruments are categorized based upon the type of measurements they can perform or the type of output they can produce.

For each instrument class, the IVI Foundation publishes a specification, known as the class specification. Each class specification lays out the requirements for compliance with that class specification. An IVI driver that complies with a class specification is said to be a class-compliant IVI driver. The primary purpose of an IVI class specification is to detail the set of functions and attributes that an IVI driver must support in order to be class-compliant. The class specification carefully prescribes the exact name of each function, along with the parameter list and the API hierarchy, as well as other behavior details.

Currently, the IVI Foundation has defined and approved specifications for twelve instrument classes. These specifications are available from the IVI Foundation.

  • IVI-4.1: IviScope Class Specification
  • IVI-4.2: IviDmm Class Specification
  • IVI-4.3: IviFgen Class Specification
  • IVI-4.4: IviDCPwr Class Specification
  • IVI-4.5: IviACPwr Class Specification
  • IVI-4.6: IviSwtch Class Specification
  • IVI-4.7: IviPwrMeter Class Specification
  • IVI-4.8: IviSpecAn Class Specification
  • IVI-4.10: IviRFSigGen Class Specification
  • IVI-4.12: IviCounter Class Specification
  • IVI-4.13: IviDownconverter Class Specification
  • IVI-4.14: IviUpconverter Class Specification
  • IVI-4.15: IviDigitizer Class Specification

Interchangeability and IVI

The term interchangeability in IVI refers to the ability to exchange an instrument of one class in a system with a different instrument from that same class. IVI interchangeability does not generally refer to the case of exchanging instruments from different instrument classes.

Client applications achieve interchangeability by writing their code such that it meets at least the following two conditions:

  1. It uses only functions and attributes from the IVI class specification.
  2. It has no references to a specific IVI instrument driver.

Since IVI drivers can contain functionality beyond the class specification (known as instrument-specific functionality), the client programmer must take care to only use functionality from the IVI specification if their program is to be interchangeable. Only the IVI-defined functionality is guaranteed to be supported by a class-compliant driver.

The second condition (excluding references to a specific driver) is a bit trickier to meet, and requires the use of extra software components. The mechanism by which this is achieved is different for IVI-COM drivers and IVI-C drivers.

IVI-COM Interchangeability

Interchangeability with IVI-COM relies upon special components shipped as part of the IVI Shared Components. The first component required for IVI-COM interchangeability is the COM Session Factory. This component allows users to instantiate a specific IVI-COM driver by name, rather than by a hard-coded program reference.

The name used to instantiate the driver is termed the logical name. The IVI Configuration Store holds all of the user-assigned logical names, and maps them to specific IVI drivers. When a different instrument is introduced into the system, the user need only change the specific driver referenced by their logical name in the IVI Configuration Store. No user code is modified, so the application will run without re-compiling or re-linking. The COM Session Factory will lookup the logical name in the IVI Configuration Store and instantiate the new driver.

The second component required for IVI-COM interchangeability is the type library associated with the IVI instrument class in use. The IVI-COM type libraries are also part of the IVI Shared Components. These DLLs contain the interface definitions (function signatures, property and parameter types, etc.) for a particular instrument class. Class-compliant IVI-COM drivers reference these type libraries to implement the functionality they define. Client applications reference these type libraries to access driver functionality in a driver-independent fashion.

The COM Session Factory and the IVI-COM type libraries are the basic machinery that enables interchangeability with IVI-COM drivers.

IVI-C Interchangeability

IVI-C interchangeability differs fundamentally from IVI-COM interchangeability in that IVI-C drivers require the use of a special 3rd-party component called a class driver.

Note:

It is crucial to understand that IVI-C class drivers are not shipped as part of the IVI Shared Components. Rather, class drivers must be obtained from a 3rd party vendor. Furthermore, IVI-C interchangeability does not extend to interchanging class drivers. Specifically, a client application built using class drivers from Vendor A must be modified, re-compiled, and re-linked if it is to use class drivers from Vendor B.

The class driver exposes the functions defined in a particular IVI instrument class. All of the class driver functions have generic names, so that client applications have no driver-specific references. For example, rather than naming a function "ag34401_Configure", which is obviously device-specific, the class driver will expose the function with the name "IviDmm_Configure".

IVI-C client applications link to the class driver and call into the class driver's Initialize function providing a logical name. This logical name is the same as that described for IVI-COM drivers above. Specifically, the logical name identifies a specific IVI-C driver that the class driver should load. Once the specific driver is loaded, subsequent function calls on the class driver are delegated to the corresponding function in the specific driver. In this way, IVI-C client applications can be written generically against a class driver and incorporate new specific drivers without modification.

Base Capabilities and Extension Groups

Each IVI class specification partitions IVI-defined functionality into two groups -- base capabilities and extension groups.

Base Capabilities Group

The Base Capabilities group contains functionality that all IVI drivers must implement if they wish to claim conformance with the instrument class in question. Typically, the Base Capabilities group represents the "least common denominator" of functionality for an instrument class, so most commercial instruments can be expected to support this level of capability.

As an example, the IviDmm Base Capabilities group contains functions for range, resolution, and triggering. Most commercial DMMs possess at least these capabilities, so any IVI driver that wishes to claim IviDmm-compliance must support this group of functionality.

Extension Groups

IVI uses Extension Groups to define functionality that is found in many instruments of a particular class but may not be as common as the functionality expressed in the Base Capabilities. One may think of Extension Groups as being standard definitions for "optional" functionality in an IVI driver.

Extension Groups provide a means for more advanced instruments to expose functionality in an interchangeable fashion, while still allowing simpler instruments to be class-compliant. For instance, not all DMMs have the ability to perform temperature measurements. Thus, the IviDmm class specification uses the IviDmmTemperature Extension Group to define temperature measurement capabilities.

Simply put, an Extension Group is making the statement to the driver developer, "You do not have to provide these capabilities in your IVI driver, but if you do, you must do it according to the IVI definition." An IVI driver can be class-compliant without supporting any of the extension groups in its instrument class. All IVI drivers expose a GroupCapabilities attribute that returns a comma-separated list of the extension groups supported by the driver. Using this attribute, client applications and tools can programmatically determine what optional functionality is present in an IVI driver.


Instrument-Specific Capabilities

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Instrument-Specific Capabilities

Modern instruments typically possess much more functionality than is represented in the IVI instrument class specifications. End users must have a way to access the full capability of the instrument they have purchased. Thus, the driver must expose interfaces that are specific to that instrument alone. These are known as instrument-specific capabilities.

Instrument-specific capabilities are obviously not interchangeable. End users programming against a driver's instrument-specific interfaces typically do so to access functionality that is not available in the class-compliant interfaces . Nevertheless, for complex instruments such as spectrum analyzers, there will often be far more functionality in the IVI driver's instrument-specific hierarchy than in the class-compliant hierarchy.

Although, by definition, IVI does not dictate the syntax and semantics of instrument-specific interfaces, there are still guidelines that must be followed in the design of the interfaces if the driver is to be IVI compliant. Most of these rules are laid out in IVI-3.4: API Style Guide.


IVI Shared Components

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IVI Shared Components

In order to facilitate IVI driver development and to ensure a consistent experience for end users building IVI-based test systems, the IVI Foundation develops and maintains a series of freely available software components. These components are collectively referred to as the IVI Shared Components, and they must be installed on any computer that will use IVI drivers. In fact, IVI driver installation programs are required to check for the presence of the IVI Shared Components before installing.

The following sections provide a brief overview of some of the most important IVI Shared Components.

IVI Shared Component Installer

The IVI Foundation provides an installer for the IVI Shared Components. Moreover, the Foundation's Shared Component installer is the only IVI-compliant way to install the IVI Shared Components. Third parties are not allowed to develop custom installation programs for the IVI Shared Components.

The IVI Shared Component installer creates a directory structure to house the IVI Shared Components as well as IVI drivers themselves. The root of this directory structure is referred to as the IVI install directory (<IviInstallDir>) and is typically <ProgramFilesDir>\IVI Foundation\IVI.

The IVI Shared Component installer is available for download from the IVI Foundation web site.

IVI Configuration Store

When the IVI Shared Components are installed, a special XML file named IviConfigurationStore.xml is placed in the <IviInstallDir>\Data directory. This file is known as the IVI Configuration Store and serves as a central repository for IVI driver configuration information.

IVI driver installers are required to populate the Configuration Store with information such as the instrument classes supported, the instrument models for which the driver is designed, and the physical channel names understood by the driver. End users add information to the Configuration Store to describe how they intend to use IVI drivers in their system. End users can specify logical names for IVI drivers and virtual names for channels.

For more information on the structure of the IVI Configuration Store, see IVI-3.5: Configuration Server Specification available on the IVI Foundation web site.

IVI Configuration Server

The IVI Foundation discourages users and driver developers from directly manipulating the Configuration Store XML file (IviConfigurationStore.xml). The Configuration Store is highly self-referential and easily corrupted if modified directly. Thus, the Foundation provides a COM component known as the IVI Configuration Server for programmatically reading and writing information to the Configuration Store.

The IVI Configuration Server is installed automatically by the IVI Shared Component installer. For more information on how to use the IVI Configuration Server, see IVI-3.5: Configuration Server Specification available on the IVI Foundation web site.

COM Session Factory

IVI-COM drivers, like all COM components, must be created using a specific, hard-coded reference to the main COM class. In Visual Basic, this reference takes the form of a class data type, while in Visual C++, a CLSID must be specified. Irrespective of the IDE in use, this identifier must somehow be provided to instantiate the driver and begin calling methods and properties. Yet, having a direct reference to such an instrument-specific item in an application program renders that application non-interchangeable. Specifically, if the user wishes to use a different instrument (and, hence, a different driver), then this CLSID (or class name in Visual Basic) must be manually changed and the program re-complied and re-linked.

The COM Session Factory (or, simply, the session factory)is a very simple COM component supplied with the IVI Shared Components. In spite of its simplicity, the session factory is a key to writing interchangeable applications that use IVI-COM drivers.

Rather than directly creating an IVI-COM driver using a CLSID (or the equivalent), the application program creates an instance of the session factory and then asks it to instantiate a specific IVI-COM driver. For this to work, the user must create a Logical Name in the IVI Configuration Store and associate that Logical Name with the specific IVI-COM driver they wish to instantiate. The COM Session Factory simply looks up the Logical Name in the IVI Configuration Store, locates the associated IVI-COM driver and instantiates it accordingly.

Note that, as the name implies, the COM Session Factory is only relevant for IVI-COM drivers. IVI-C drivers use a completely different mechanism (namely, IVI Class Drivers), to facilitate interchangeability.

The COM Session Factory is installed automatically by the IVI Shared Component installer. For more information on how to use the IVI Session Factory, see IVI-3.6: COM Session Factory Specification available on the IVI Foundation web site.

IVI-COM Type Libraries

Part of the IVI Shared Components include a series of COM type libraries that contain the interface definitions for the IVI inherent capabilities as well as for all IVI instrument classes. These type libraries are installed in <IviInstallDir>\Bin and are generally named <IviClass>TypeLib.dll. For instance, the type library containing the interface definitions for the IviDmm instrument class is IviDmmTypeLib.dll.

Client applications must directly reference the IVI-COM type libraries from their projects in order to call methods and properties in IVI-defined interfaces. All client applications must include a reference to IviDriverTypeLib.dll, since this type library houses the interface definitions for the IVI inherent capabilities. Application programs must also reference the type library containing the interface definitions for any class-compliant interfaces they wish to support.


Repeated Capabilities

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Repeated Capabilities

Instruments often contain multiple instances of the same kind of functionality or capability. For instance, modern oscilloscopes may have multiple channels, each with independent settings for such things as vertical scale and input attenuation. IVI refers to functionality that is duplicated in an instrument as a repeated capability.

Physical Repeated Capability Names

Instances of repeated capabilities are identified by name. These names are passed as parameters to standard repeated capability accessor functions in order to change settings and execute methods on a driver's repeated capabilities. There are two types of repeated capability names -- physical names and virtual names. Physical repeated capability names are those that the driver writer specifies during driver development. These are the names that the driver natively understands and, as such, they cannot be modified by an end user. They can only be read by an end user. Virtual repeated capability names are explained below.

The physical repeated capability names (or simply physical names) understood by a particular driver can be discovered interactively or programmatically. Each IVI driver is required to register the set of physical names it understands with the IVI Configuration Store. This means an end user can use whatever IVI Configuration Store browser they have to look up the physical names supported by the driver.

Physical names can also be discovered programmatically using standard repeated capability functions. Example code for doing this is given below in the section on Parameter-Style Repeated Capabilities.

Virtual Repeated Capability Names

Virtual names allow end users to specify their own names for repeated capability instances and map those names to the physical names that the driver natively understands. The user establishes the virtual-to-physical name mappings in the IVI Configuration Store. At runtime, the user can supply a virtual channel name to the appropriate function the driver will use the mappings in the IVI Configuration Store to translate the virtual name into a physical name that the driver understands.

The purpose of virtual names is to facilitate driver interchangeability. If a user writes application code using virtual names, then no modifications to the application code are necessary when an existing driver is replaced with one that natively understands different physical names. The user need only modify the appropriate settings in the IVI Configuration Store to map their virtual names to the new driver's physical names.

Types of Repeated Capabilities

The IVI specifications define three different types of repeated capabilities -- parameter-style repeated capabilities, selector-style repeated capabilities, and collection-style repeated capabilities. Each type of repeated capability is often more appropriate depending upon such factors as how common the repeated capability is in a particular instrument class and whether one repeated capability instance is controlled at a time or multiple instances are commonly controlled at a time. Since IVI instrument classes use all three types of repeated capabilities in various instrument classes, it is important to understand the basics of each type of repeated capability.

Parameter-Style Repeated Capabilities

The simplest type of repeated capability is the parameter style. Parameter-style repeated capabilities are used most commonly in IVI-C drivers, though they can also appear in IVI-COM drivers. As the name implies, parameter-style repeated capabilities are supported by simply adding an extra string parameter to any function that applies to a repeated capability (as opposed to a function that applies to the driver as a whole). The client application passes in either a valid physical or virtual repeated capability name for this parameter to identify the particular repeated capability instance to access.

The code below shows an IVI-C driver client using the ConfigureOperationMode function from the IviFGen class specification:

C++ Copy image Copy Code
ViSession vi;
// ...
IviFgen_ConfigureOperationMode(vi, "Output1", IVIFGEN_VAL_OPERATE_BURST);

In the code above, the second parameter is the repeated capability name. The repeated capability name almost always appears as the second parameter to a function that applies to a repeated capability. The example is setting the operation mode to burst for only the output channel identified by "Output1". The name "Output1" could be a physical name or a virtual name.

Drivers that expose a parameter-style repeated capability always expose a couple of additional functions and attributes that allow you to programmatically determine the number of repeated capabilities instances (e.g. "channels") and the physical names supported (e.g. channel names). The names of these support functions are also standardized, so that they can easily be identified when the name of the capability is know. IVI-COM drivers and IVI-C drivers differ slightly in the repeated capability support functions they expose for parameter-style repeated capabilities.

For IVI-COM drivers, the following are required to be present:

  • <Capability>Count attribute (Ex: "ChannelCount")
  • <Capability>Name attribute (Ex: "ChannelName")

For IVI-C drivers, the following are required to be present:

  • <Capability>Count attribute (Ex: "ChannelCount")
  • Get<Capability>Name attribute (Ex: "GetChannelName")

With either IVI-COM or IVI-C, the use model for these attributes is virtually identical. Specifically, the client code simply reads the value of the Count attribute and then uses this value to iterate through the repeated capability instances. The Name attribute (for IVI-COM) and the GetName function (for IVI-C) both accept a one-based index parameter to identify which repeated capability instance name is desired. The code below shows how to iterate through all of the physical names supported by an IVI-C FGen driver that exposes a "Channel" repeated capability.

C++ Copy image Copy Code
ViSession vi;
ViInt32 i;
ViChar name[1024];
// ...
ViInt32 count;
IviFgen_GetAttributeViInt32(vi, VI_NULL, IVIFGEN_VAL_CHANNEL_COUNT);
for (i = 1; i <= count; i++)
{
  // Note: One-based indexing
  IviFgen_GetChannelName(vi, i, 1024, name);
  printf(name);
}

Selector-Style Repeated Capabilities

Selector-style repeated capabilities use a special selector function to set the "active" repeated capability. Subsequent function calls that apply to a repeated capability are understood to apply to the active instance. The active instance remains active until the client code sets the active instance to another repeated capability name.

Selector-style repeated capabilities can be used in both IVI-COM and IVI-C drivers, and, though less common than the parameter style and collection style (discussed shortly), selector-style repeated capabilities have the advantage of not requiring a repeated capability name to be passed to every function that applies to the repeated capability.

As with parameter-style repeated capabilities, drivers that expose a selector-style repeated capability always expose additional functions for managing the repeated capability instances. Indeed, the selector-style repeated capability uses the same functions and attributes as the parameter style, with the addition of one attribute and one function for setting and getting the active instance.

For IVI-COM drivers, the following are required to be present:

  • <Capability>Count attribute (Ex: "ChannelCount")
  • <Capability>Name attribute (Ex: "ChannelName")
  • Active<Capability> attribute (Ex: "ActiveChannel")
  • SetActive<Capability> function (Ex: "SetActiveChannel")

For IVI-C drivers, the following are required to be present:

  • <Capability>Count attribute (Ex: "ChannelCount")
  • Get<Capability>Name attribute (Ex: "GetChannelName")
  • Active<Capability> attribute (Ex: "ActiveChannel")
  • SetActive<Capability> function (Ex: "SetActiveChannel")

Since the selector-style repeated capability uses the same Count attribute and GetName function as the parameter style, the code required to iterate through the instance names for a selector-style repeated capability is identical to that shown above for the parameter style.

Collection-Style Repeated Capabilities (IVI-COM only)

By far, the most common type of repeated capability for IVI-COM drivers is the collection-style repeated capability. Collection-style repeated capabilities are not supported for IVI-C drivers.

As with the parameter and collection style, collection-style repeated capabilities always expose a Count and Name attribute for iterating through the list of available repeated capability names. Unique to collection-style repeated capabilities is the Item property, which provides access to individual repeated capability instances. The Item property accepts a repeated capability name (physical name or virtual name) and returns an interface pointer to the desired repeated capability instance. All method and property calls on the returned interface pointer implicitly apply to the repeated capability instance chosen with the Item property.

The C# code below demonstrates how to use the Item property to access a channel called "CH1" and enable it.

C# Copy image Copy Code
IIviScope scope = new AcmeScopeClass();
// ... Initialize called
IIviScopeChannel channel = scope.Channels.get_Item("CH1");
channel.Enabled = true;

Note that in C#, the Item property is invoked using the get_Item accessor method. This is required for C# because that language does not support parameterized properties. Thus, any property that accepts one or more parameters must be accessed as if it were a method. The standard way in which such properties appear in C# is with a "get_" prefix (for reads) and a "set_" prefix (for writes).

Note also that declaring the intermediate variable for the IIviScopeChannel interface returned by get_Item is not necessary. Depending upon the client application, it may be more convenient to write the code as follows:

C# Copy image Copy Code
IIviScope scope = new AcmeScopeClass();
// ... Initialize called
scope.Channels.get_Item("CH1").Enabled = true;

Static and Dynamic Repeated Capabilities

Many instruments have a fixed number of repeated capabilities. For instance, a function generator typically has a fixed number of output channels. However, some instruments can have a variable number of repeated capabilities, depending upon end-user configuration. For instance, a switching mainframe might have any of a number of combinations of multiplexer cards installed on a particular end-user system. Thus, the number of channels is not fixed and can only be determined at runtime. Such instruments possess what are termed dynamic repeated capabilities. Conversely, instruments that always have a fixed number of repeated capabilities use the term static repeated capabilities.

A driver that exposes dynamic repeated capabilities cannot register the supported repeated capability names during driver installation. Instead, during the driver Initialize call, the driver typically queries the instrument to determine its exact configuration. The mechanism by which a driver determines the name and number of the supported repeated capabilities is always instrument specific, but the net result is that the end user must use the Count and Name attributes to programmatically determine what repeated capability instances are available. An IVI Configuration Store browser is useless in determining what dynamic repeated capabilities a driver supports. It relies only upon static information in the IVI Configuration Store, so it can only report details on static repeated capabilities.

Finally, it is worth noting that a driver can contain both static and dynamic repeated capabilities.


LXI Fundamentals

[image]

AgM9036 IVI Driver Reference Agilent Technologies
LXI Fundamentals

The AgM9036 driver does not support the LXI standard.


Installation

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Installation

Updating to a New Driver Version

It is important to note that only a single version of an IVI driver can be installed on a system at once. This rule is dictated by the IVI specifications. To ensure that only a single version of the AgM9036 driver exists on the machine, the AgM9036 installer will automatically uninstall a previous version of the driver. Although you can always explicitly uninstall the driver, this is typically not necessary.

Location of Files

The AgM9036 installer deploys and registers a variety of files on the target computer. The notation <IviInstallDir> is used to denote the directory in which the IVI Shared Components have been installed. By default, this is C:\Program Files\IVI Foundation\IVI. Substitute your install directory if the IVI Shared Components were installed in an alternate location.

File | Description
<IviInstallDir>\Bin\AgM9036.dll | Driver DLL.
<IviInstallDir>\Bin\Primary Interop Assemblies\Agilent.AgM9036.Interop.dll | Interop assembly for using the driver in .NET environments.
<IviInstallDir>\Bin\Primary Interop Assemblies\Agilent.AgM9036.Interop.xml | XML documentation file for providing IntelliSense support in .NET environments.
<IviInstallDir>\Include\AgM9036.h | Driver header file.
<IviInstallDir>\Lib\msc\AgM9036.lib | Microsoft-format import library.
<IviInstallDir>\Drivers\AgM9036\AgM9036.fp | Function panel file.
<IviInstallDir>\Drivers\AgM9036\AgM9036.sub | Attribute information file.
<IviInstallDir>\Drivers\AgM9036\AgM9036.chm | HTML 1.0 format help file.
<IviInstallDir>\Drivers\AgM9036\AgM9036.HxS | HTML 2.0 format help file.

Installation on a System with the .NET Framework

The AgM9036 installer detects if the .NET Framework is installed and, if so, registers the driver's Primary Interop Assembly (PIA) and deploys it in the .NET Global Assembly Cache (GAC).

Note:

If the .NET Framework is installed on the target computer after the AgM9036 installer runs, then the PIA must be registered manually. This must be done from a Visual Studio command prompt (not a regular command prompt). The Visual Studio command prompt can be found from Start -> Programs -> Microsoft Visual Studio 2005 -> Visual Studio Tools -> Visual Studio 2005 Command Prompt.

From the Visual Studio command prompt, perform the following two steps:

  1. Navigate to the PIA (<IviInstallDir>\Bin\Primary Interop Assemblies\AgM9036.dll) and execute the following command: "gacutil -i AgM9036.dll". You can also drag-n-drop the PIA from Windows explorer into the GAC folder (C:\Windows\Assembly).
  2. Execute the following command: "regasm /codebase AgM9036.dll".

IVI Shared Components

Before any IVI driver may be installed on a system, the IVI Shared Components must be properly installed. For an introduction to the IVI Shared Components, see the topic IVI Shared Components.

For additional information on the IVI Shared Components, visit the IVI Foundation web site.

To determine which version of the IVI Shared Components are installed on your system

  1. Navigate to <IviInstallDir>\Bin. Typically this is C:\Program Files\IVI Foundation\IVI\Bin.
  2. Locate the file IviSharedComponentVersion.dll.
  3. Right-click on that file and choose Properties.
  4. In the Properties Window, click the Version tab.
  5. The File version field indicates which version of the IVI Shared Components are installed.

Uninstallation

The only proper way to explicitly remove the driver from the system is to use the uninstallation program. Simply removing the installed files will not properly uninstall the driver.

To uninstall the driver

  1. From the Windows Start menu, choose All Programs and select Control Panel.
  2. Double-click Add or Remove Programs.
  3. Select the driver and click Remove.
Note:

In order to prevent loss of important user configuration information between uninstall/reinstall operations, the uninstallation program does not remove any of the following items from the IVI Configuration Store:

  • Logical Name
  • Driver Session
  • Hardware Asset
The only IVI Configuration Store item that is deleted during an uninstall is the Software Module.
For a discussion of IVI Configuration Store entries, such as the Software Module, see Configuring the Driver.


IVI Compliance Information

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IVI Compliance Information

This page provides IVI-required compliance information for the AgM9036 driver.

Compliance Category

IVI drivers come in a variety of types and configurations. This section provides IVI-required compliance information on the various categories of IVI compliance for the AgM9036 driver.

Compliance Category | Compliance Information
Category Name | IVI-COM/C Custom Specific Instrument Driver
Class Specification Version | No IVI instrument class supported.

Optional Features

This section provides IVI-required information regarding optional IVI driver features supported by the AgM9036 driver.

Feature | Supported
Interchangeability checking | No
State caching | No
Coercion recording | No

Driver Identification

This section provides IVI-required identity information for the AgM9036 driver.

Identification Category | Description
Driver Revision | 1.0
Driver Vendor | Agilent Technologies
Driver Description | IVI driver for the Agilent M9036 PXIe embedded system controller
Prefix/Component Identifier | AgM9036
Supported Models | M9036A


Configuring the Driver

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Configuring the Driver

The IVI Configuration Store is part of the IVI Shared Components distributed by the IVI Foundation. The IVI Configuration Store serves as a central repository for driver registration information. Physically, the IVI Configuration Store is an XML file installed by the IVI Shared Component Installer in the following directory:
<IviInstallDir>\Data\IviConfigurationStore.xml.
where, <IviInstallDir> is typically C:\Program Files\IVI Foundation\IVI.

The AgM9036 installer populates the IVI Configuration Store (Config Store) with the required entries for using the driver. Specifically, the driver installer adds a Software Module entry to the Config Store to represent the driver DLL itself. No other entries in the Config Store are created by the driver. If you only wish to access the instrument specific functionality of the driver, then no other entries in the Config Store are required.

To use the driver in application programs that will be interchangeable, you must edit the Config Store and add a few specific entries. Instrument vendors and other third parties provide graphical tools for conveniently editing the Config Store.

Note:

Although the IVI Configuration Store is a human readable XML file, the IVI Foundation strongly discourages you from directly editing this file. The Config Store file is highly self-referential and easily corrupted if directly modified. Instead, use one of the available third-party editors. Alternatively, the IVI Shared Components include a programmatic interface to the Config Store, known as the IVI Configuration Server.

Editing the IVI Configuration Store

The driver installer creates only one entry in the Config Store -- the Software Module. This entry is removed by the driver uninstaller. End users should never modify the Software Module entry.

To author test programs that allow for interchangeability, you must create three additional entries in the Config Store:

  • Hardware Asset
  • Driver Session
  • Logical Name

The following sections provide descriptions of each of the Config Store entries mentioned here. Consult the documentation for your Config Store editor for detailed instructions on modifying these items.

Software Module

The Software Module identifies the instrument driver DLL, as well as various pieces of important driver information, such as the physical repeated capability names used for the repeated capabilities, IVI compliance information, as well as a variety of other items.

Hardware Asset

The Hardware Asset identifies a specific piece of instrument hardware. The main purpose of the Hardware Asset is to house the I/O resource descriptor used to communicate with the device.

Driver Session

The Driver Session associates the Software Module with the Hardware Asset. The Driver Session also specifies such things as driver initialization values and mappings between physical repeated capability names and virtual repeated capability names. Virtual names are used by client programs to access repeated capabilities in an interchangeable fashion.

For a discussion of repeated capabilities, physical names, and virtual names, see the Repeated Capabilities topic.

Users create a separate Driver Session for each unique combination of driver software, instrument hardware, and initialization settings. You may have multiple Driver Sessions for the same Software Module, if, for instance, the driver is being used to control several instances of the same instrument at different GPIB addresses.

Logical Name

The Logical Name allows users to associate an arbitrary name with a Driver Session. Since the Driver Session is tied to a particular driver and instrument, a level of indirection is needed to abstract these details in interchangeable client applications. The Logical Name serves as this extra level of abstraction -- a simple string identifier for a Driver Session.

The Logical Name is what client programs must use to build interchangeable systems. Applications create instances of IVI-COM drivers by using the COM Session Factory and specifying the Logical Name. Applications load IVI-C specific drivers by passing a Logical Name to the Initialize function on an IVI-C class driver. In either case, no instrument-specific details exist in the client program. Swapping instruments in such a system involves merely associating the Logical Name in the Config Store with a different Driver Session (i.e. a different driver-instrument combination).


AgM9036 IVI-COM Driver

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036 IVI-COM Driver

The AgM9036 driver includes a fully compliant IVI-COM driver. The topics in this section detail how to perform specific programming tasks using the IVI-COM interfaces available with the AgM9036 driver.

In This Section

Initializing the IVI-COM Driver

Presents the steps required to properly initialize the IVI-COM driver.

Accessing Instrument-Specific Functionality

Explains how to access the specialized functionality of the AgM9036 driver.

Using Simulation

Provides information on using the simulation capabilities of the driver.

Programming with the IVI-COM Driver in Various Development Environment

Demonstrates how the AgM9036 driver can be used in a various application development environments (ADEs).

Reference

Presents reference documentation for each IVI-COM method and property.


Initializing the IVI-COM Driver

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Initializing the IVI-COM Driver

Initializing the IVI-COM driver proceeds in two steps. First, the IVI-COM driver must be instantiated and then the Initialize function is called. This topic explains these two steps along with the options available for each step.

Instantiating the IVI-COM Driver

There are two ways to instantiate the IVI-COM driver -- direct instantiation using the specific driver name, and using the COM Session Factory. If the client application is to be interchangeable, then the COM Session Factory must be used. This component exposes a CreateDriver function that accepts a logical name for the driver. Instantiating the driver by name keeps the client program from having any dependencies on a specific driver and enables the application to be interchangeable.

If interchangeability is not necessary for a particular client application, it is often simpler to instantiate the IVI-COM driver directly. The exact syntax for creating an instance of a COM component varies from language to language. For instance, the CreateInstance function can be used in C++ while the new operator is used in C# and Visual Basic.NET. In any event, the client application will have a direct reference to the specific driver, so the program would not be interchangeable. For many applications, this is perfectly acceptable.

The examples below in the section describing the Initialize function will present both techniques for instantiating an IVI-COM driver.

Calling the Initialize Function

The IVI-defined Initialize function offers a variety of options and parameters that control fundamental aspects of the driver's behavior. It is critical to understand what options are available and how they impact driver operation.

ResourceName

The ResourceName parameter can be a logical name present in the IVI Configuration Store or a physical resource descriptor. If the ResourceName is a logical name, then additional options stored in the IVI Configuration Store will be loaded and processed. This allows client code to reuse driver option settings and to keep the driver code as concise as possible, by removing settings that can be stored in the IVI Configuration Store. It is important to note that any parameters or options passed directly to the Initialize function via the OptionString parameter (discussed below) override any settings found in the IVI Configuration Store.

The AgM9036 driver uses only "Controller" or "Null" as the resource name.

IdQuery

If this is enabled, the driver will query the instrument model and compare it with a list of instrument models that is supported by the driver. If the model is not supported, Initialize will fail with the E_IVI_ID_QUERY_FAILED error code.

Reset

If this is enabled, the driver will perform a reset of the instrument. If the reset fails, Initialize will fail with the E_IVI_RESET_FAILED error code.

OptionString

The OptionString allows the user to pass optional settings to the driver. These settings override any settings that are specified in the IVI Configuration Store. If the IVI Configuration Store is not used (a resource descriptor is passed as the ResourceName instead of a logical name) then any setting that is not specified has a default value as specified by IVI.

Option Name | Description | Default
Simulate | Specifies whether or not the IVI specific driver simulates instrument driver I/O operations. If simulation is enabled, the specific driver functions do not perform instrument I/O. For output parameters that represent instrument data, the specific driver functions return simulated values. | false
DriverSetup | Specifies additional settings supported by the driver, but not defined by IVI. | ""

DriverSetup

This is used to specify settings that are supported by the driver but not defined by IVI. If the Options String parameter contains an assignment for the Driver Setup attribute, the Initialize function assumes that everything following 'DriverSetup=' is part of the assignment. The following settings are supported by the AgM9036 driver.

Option Name | Description | Default
Model | Instrument model to use during simulation. Must be one of the supported model strings as returned by the IviDriver.Identity.SupportedInstrumentModels property. | (default_model)
Trace | If true, output trace log of all driver calls to an XML file in the same directory as the application executable accessing the driver or as specified by the TraceName option. The log file may be viewed in your web browser. Beginning with Agilent IO Libraries Suite 16.0, driver trace messages may also be viewed with the IO Monitor utility. See IO Monitor help for details. | false
TraceName | If specified, sets the path and file name for the XML log file output when option Trace=true. It is not necessary to include the .xml extension with the name. Example: 'DriverSetup = Trace=true, TraceName=C:\Temp\TraceOut' If not specified, tracing generates a unique XML trace file name based on the date and time. A new file is created each time the driver is initialized with tracing enabled. | ""
TraceArray | If true, array parameter data is output to the trace log. | false
TraceArraySizeMax | Specifies the maximum number of elements to trace for array parameters. Requires option 'TraceArray=true'. | 10
TraceSizeMax | Specifies the maximum size of the trace log file in bytes. Once the file reaches this size, tracing will be turned off automatically by the driver. | 1000000
TraceSaveInterval | Specifies how often the driver should save trace data to the trace log file. The value is specified in minutes. | 1

Example 1 (default initialization) -- Instantiate with the COM Session Factory

The following code initializes the driver with default options.

C++ Copy image Copy Code
#import "IviDriverTypeLib.dll" no_namespace
#import "IviSessionFactory.dll" no_namespace

void main()
{
  try
  {
    // Create an instance of the driver using the session factory.
    // This code is interchangeable since no reference to the specific driver exists.
    IIviSessionFactory spFactory(__uuidof(IviSessionFactory));
    IIviDriverPtr spDriver = spFactory->CreateDriver(_T("MyLogicalName"));

    // Initialize the driver with default options.
    // This will also check the instrument ID to make sure it is supported
    // and reset the instrument
    spDriver->Initialize(_T("MyLogicalName"), VARIANT_TRUE, VARIANT_TRUE, _T(""));

    // Use the driver...

    // Close the session
    spDriver->Close();
  }
  catch (_com_error&)
  {
  }
}
C# Copy image Copy Code
using System;
using System.Runtime.InteropServices;
using Ivi.Driver.Interop;
using Ivi.SessionFactory.Interop;

public class App
{
  public static void Main(string[] args)
  {
    try
    {
      // Create an instance of the driver using the session factory
      // This code is interchangeable since no reference to the specific driver exists.
      IIviSessionFactory factory = new IviSessionFactoryClass();
      IIviDriver driver = (IIviDriver)factory.CreateDriver("MyLogicalName");

      // Initialize the driver with default options.
      // This will also check the instrument ID to make sure it is supported
      // and reset the instrument
      driver.Initialize("MyLogicalName", true, true, "");

      // Use the driver...

      // Close the session
      driver.Close();
    }
    catch (Exception e)
    {
      Console.WriteLine(e.Message);
    }
  }
}

Example 2 (simulation) -- Direct Driver Instantiation

The following code initializes the driver in simulation mode and specifies the model to simulate.

C++ Copy image Copy Code
#import "IviDriverTypeLib.dll" no_namespace
#import "IviSessionFactory.dll" no_namespace
#import "AgM9036.dll" no_namespace

void main()
{
  try
  {
    // Instantiate the driver class directly
    IIviDriverPtr spDriver(__uuidof(AgM9036)); // not interchangeable, using driver class name

    // Initialize the driver with no range checking and no state caching
    // This will also check the instrument ID to make sure it is supported
    // and reset the instrument
    spDriver->Initialize(_T("MyLogicalName"), VARIANT_TRUE, VARIANT_TRUE, _T("Simulate=true, DriverSetup= Model=M9036A"));

    // Use the driver ...

    // Close the session
    spDriver->Close();
  }
  catch (_com_error&)
  {
  }
}
C# Copy image Copy Code
using System;
using System.Runtime.InteropServices;
using Ivi.Driver.Interop;
using Ivi.SessionFactory.Interop;
using Agilent.AgM9036.Interop;

public class App
{
  [STAThread]
  public static void Main(string[] args)
  {
    try
    {
      // Instantiate the driver class directly
      IIviDriver driver = new AgM9036Class(); // not interchangeable, using driver class name

      // Initialize the driver with no range checking and no state caching
      // This will also check the instrument ID to make sure it is supported
      // and reset the instrument
      driver.Initialize("MyLogicalName", true, true, "Simulate=true, DriverSetup= Model=M9036A");

      // Use the class-compliant capabilities...

      // Close the session
      driver.Close();
    }
    catch (Exception e)
    {
      Console.WriteLine(e.Message);
    }
  }
}


Accessing Instrument-Specific Functionality

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Accessing Instrument-Specific Functionality

As the name implies, the instrument-specific capabilities are those methods and properties that are unique to the instrument. In practice, the instrument-specific portion of the driver exposes the full functionality of the instrument -- including functionality that may also be available in the class-compliant capabilities. Users that do not care about interchangeability or that need to access functionality that is not defined by IVI will use the instrument-specific interfaces in application programs.

When to use the instrument specific interfaces

  • When the required functionality is not exposed in the class-compliant interfaces.
  • When interchangeability is not a requirement.
  • When performance is critical. Sometimes a driver may perform better using the instrument specific interfaces because they match the instrument functionality more closely than the class-compliant interfaces.

Example

The following client code uses the instrument specific interfaces.

C++ Copy image Copy Code
#import "IviDriverTypeLib.dll" no_namespace
#import "AgM9036.dll" no_namespace

void main()
{
  try
  {
    // Instantiate the driver class directly
    IAgM9036Ptr spDriver(__uuidof(AgM9036));

    // Initialize the driver
    spDriver->Initialize(_T("Controller"), VARIANT_TRUE, VARIANT_TRUE, _T(""));

    // Use instrument specific interfaces...
    wchar_t revision[128];
    wcsncpy(revision, (wchar_t*)spDriver->Identity->Revision.GetBSTR(), 128);

    // Close the session
    spDriver->Close();
  }
  catch (_com_error&)
  {
  }
}
C# Copy image Copy Code
using System;
using System.Runtime.InteropServices;
using Ivi.Driver.Interop;
using Agilent.AgM9036.Interop;

namespace ClientApp
{
  public class App
  {
    [STAThread]
    public static void Main(string[] args)
    {
      try
      {
        // Instantiate the driver class directly
        IAgM9036 driver = new AgM9036Class();

        // Initialize the driver
        driver.Initialize("Controller", true, true, "");

        // Use instrument specific interfaces...
        string revision = driver.Identity.Revision;

        // Close the session
        driver.Close();
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
      }
    }
  }
}


Using Simulation

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Simulation

An IVI driver can operate without the presence of an actual instrument by using simulation mode. When simulation is turned on, the driver performs no instrument communication, but attempts to generate results which allow client applications to reasonably execute. You can turn on simulation using the following technique:

  • Passing the "simulate=true" option string parameter to the Initialize method.

The IVI-COM driver contains a Simulate property in the IIviDriverOperation interface. Changing the current simulation state after initialization is not supported and will return an error. This is because you cannot initiate or disable a live I/O session with an instrument after you have called the Initialize function.

Using The Option String

The fourth and last parameter to the Initialize method is the option string. See the help on Initialize for more details. To turn simulation on with the option string, include the following in the option string:

simulate=true

For example, the Initialize call in C# might look like this:

instr.Initialize("Controller", true, true, "Simulate=True");

When the simulate option is set True, the value of the resource descriptor parameter (the first parameter above) is ignored. This is because no I/O connection will be made with the instrument, as is required by IVI-3.1: Driver Architecture Specification.

The Driver Session Simulate Property

A DriverSession in the IVI Configuration Store contains properties for the same items which can be set with the option string parameter. The name of a DriverSession, or the name of a LogicalName which points to a DriverSession, can be used as the first parameter to Initialize. If the Simulate property in the DriverSession is true, the driver is initialized in simulation mode.

Changing the Instrument Model

Many drivers support more than one instrument model. These models are listed in the SupportedInstrumentModels property in the IIviDriverIdentity interface. Drivers will typically select one of these as the default model by creating a special type of entry in the IVI Configuration Store known as a Configurable Initial Settings. You can modify the Model value in the Configurable Initial Settings for the DriverSession of interest, or you can simply specify the model to simulate at runtime during the call to Initialize.

To have the driver simulate a specific model of your choosing, simply add the desired model to the DriverSetup string using the following special syntax:

Simulate=true, DriverSetup=Model=M9036A

The complete Initialize call becomes:

instr.Initialize("Controller", True, True, "Simulate=True, DriverSetup= Model=M9036A")

If you set the model to a value not supported by the driver, the driver reports an error.

Limitations of Simulation

Simulation is designed to allow the driver to be used without an instrument or any I/O software or hardware. However, simulation is not intended to fully emulate the instrument. There are some important differences you should be aware of:

  • There is often no parameter range checking or coercion in simulation mode. Values that result in "parameter out of range" errors on the instrument, might or might not be accepted without errors in simulation mode.
  • Measurement data is not live. Most data queries will return a fixed value or a small array of values.


Programming with the IVI-COM Driver in Various Development Environments

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Programming with the IVI-COM Driver in Various Development Environments

IVI-COM drivers are implemented using standard COM technology. Specifically, IVI-COM drivers support what are known as custom COM interfaces. To ensure compatibility with the broadest possible set of development environments, the IVI specifications restrict data types that can be used in an IVI-COM driver to a special set called oleautomation data types (also known simply as automation data types. Automation types were originally designed for Visual Basic but have since gained broad acceptance. Consequently, IVI-COM drivers can be used in a wide variety of development environments, namely, those that support custom oleautomation COM interfaces.

IVI-COM Drivers and .NET

Interop assemblies are used in .NET environments, such as C# and VB.NET, to access COM components. When installing an IVI-COM driver on a computer with the .NET Framework, the IVI specifications require an interop assembly be deployed and properly registered. The full path to the interop assembly for the AgM9036 driver is:

<IviInstallDir>\Bin\Primary Interop Assemblies\Agilent.AgM9036.Interop.dll

The topics in this section provide detailed instructions on how to access and use IVI-COM drivers in a variety of popular development environments. Each topic includes a complete example of IVI-COM driver usage.

In This Section

Using C#

Provides instructions on using interop assemblies to access IVI-COM drivers.

Using Visual Basic.NET

Describes the process for importing interop assemblies into Visual Basic.NET and invoking methods and properties.

Using Visual C++

Explains how to import IVI-COM driver type libraries into C++ and use smart pointers to access methods and properties.

Using Visual Basic 6

Explains how to use IVI-COM drivers with pre-.NET Visual Basic.

Using Agilent VEE Pro®

Presents information on using the driver with Agilent VEE Pro.

Using LabVIEW®

Provides an introduction to LabVIEW's special support of IVI-COM.

Using MATLAB®

Presents information on using the driver with MATLAB.


Using Visual C#

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Visual C#

This section describes how to use the AgM9036 IVI-COM driver from Visual C#.

Referencing the Driver

In order to access any of the driver interfaces, the proper references to the AgM9036 driver DLL and IviDriver DLL must be created.

  1. In solution explorer, right-click on References and select Add Reference.
  2. Click the COM tab.
  3. Select the following type libraries:
    • IviDriver 1.0 Type Library
    • IVI AgM9036 1.0 Type Library
  4. Click the Select button and then OK.
  5. Each of the above type libraries should now appear under the References node in solution explorer.

All data types (interfaces and enums) are contained within namespaces. Usually the namespace-qualified name must be used, but the C# using statement allows the type name to be used directly.

C# Copy image Copy Code
using Ivi.Driver.Interop;
using Agilent.AgM9036.Interop;

Creating an Instance of the Driver

To use instrument specific capabilities, a reference to the driver DLL is required.

C# Copy image Copy Code
AgM9036 driver = new AgM9036();

Initializing the Driver

Calling Initialize will establish an I/O connection to an instrument (often referred to as an "I/O session") or setup the driver to work in simulation mode. Calling Close is required by the IVI specifications, else unpredictable driver behavior could result. Any resources held by the driver will not be properly released if Close is not called.

Initializing Using a Logical Name

The following code demonstrates how to initialize a driver using a Logical Name. A Logical Name must be used if the program is to be interchangeable. The "MyLogicalName" string shown in the example must be explicitly mapped by the end user to a Driver Session in the IVI Configuration Store. This is typically done using a 3rd-party configuration utility.

C# Copy image Copy Code
driver.Initialize("MyLogicalName", false, false, "");
driver.Close();

Initializing Using a Resource Descriptor

When interchangeability is not required, the driver is typically initialized using a resource descriptor, often a VISA resource descriptor, as shown below.

C# Copy image Copy Code
driver.Initialize("Controller", false, false, "");
driver.Close();

Initializing Using Options

This example shows how IVI-defined initialization options and driver-specific options can be passed to the Initialize function.

For more details on Initialize, see Initializing the Driver topic.

C# Copy image Copy Code
// If true, this will query the instrument model and fail initialization
// if the model is not supported by the driver
bool idQuery = false;

// If true, the instrument is reset at initialization
bool reset = false;

// Setup IVI-defined initialization options
string standardInitOptions = "Simulate=false";

// Setup driver-specific initialization options
string driverSetupOptions =	"DriverSetup= Model=M9036A, Trace=false";

driver.Initialize("MyLogicalName", idQuery, reset, standardInitOptions + "," + driverSetupOptions);
driver.Close();

Programming the Driver

For further information on how to program the AgM9036 using C#, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

C# Examples

When you installed the AgM9036, C# example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

C# examples are located in the VS.NET/CSharp directory:

Example | Description
CS_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
CS_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using Visual Basic.NET

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Visual Basic.NET

This section describes how to use the AgM9036 IVI-COM driver from Visual Basic.

Referencing the Driver

In order to access any of the driver interfaces, the proper references to the AgM9036 driver DLL and IviDriver DLL must be created.

  1. In solution explorer, right-click on References and select Add Reference.
  2. Click the COM tab.
  3. Select the following type libraries:
    • IviDriver 1.0 Type Library
    • IVI AgM9036 1.0 Type Library
  4. Click the Select button and then OK.
  5. Each of the above type libraries should now appear under the References node in solution explorer.

All data types (interfaces and enums) are contained within namespaces. Usually the namespace-qualified name must be used, but the VB Imports statement allows the type name to be used directly.

Visual Basic Copy image Copy Code
Imports Ivi.Driver.Interop
Imports Agilent.AgM9036.Interop

Creating an Instance of the Driver

To use instrument specific capabilities, a reference to the driver DLL is required.

Visual Basic Copy image Copy Code
Dim driver As new AgM9036

Initializing the Driver

Calling Initialize will establish an I/O connection to an instrument (often referred to as an "I/O session") or setup the driver to work in simulation mode. Calling Close is required by the IVI specifications, else unpredictable driver behavior could result. Any resources held by the driver will not be properly released if Close is not called.

Initializing Using a Logical Name

The following code demonstrates how to initialize a driver using a Logical Name. A Logical Name must be used if the program is to be interchangeable. The "MyLogicalName" string shown in the example must be explicitly mapped by the end user to a Driver Session in the IVI Configuration Store. This is typically done using a 3rd-party configuration utility.

Visual Basic Copy image Copy Code
driver.Initialize("MyLogicalName", False, False, "")
driver.Close()

Initializing Using a Resource Descriptor

When interchangeability is not required, the driver is typically initialized using a resource descriptor, often a VISA resource descriptor, as shown below.

Visual Basic Copy image Copy Code
driver.Initialize("Controller", False, False, "")
driver.Close()

Initializing Using Options

This example shows how IVI-defined initialization options and driver-specific options can be passed to the Initialize function.

For more details on Initialize, see Initializing the Driver topic.

Visual Basic Copy image Copy Code
' If True, this will query the instrument model and fail initialization
' if the model is not supported by the driver
Dim idQuery As Boolean = False

' If True, the instrument is reset at initialization
Dim reset As Boolean = False

' Setup IVI-defined initialization options
Dim standardInitOptions As String =	"Simulate=false"

' Setup driver-specific initialization options
Dim driverSetupOptions As String = "DriverSetup= Model=M9036A, Trace=false"

driver.Initialize("MyLogicalName", idQuery, reset, standardInitOptions + "," + driverSetupOptions)
driver.Close()

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

Visual Basic Examples

When you installed the AgM9036, Visual Basic example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

Visual Basic examples are located in the VS.NET/VB directory:

Example | Description
VB_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
VB_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using Visual C++

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Visual C++

This section describes how to use the AgM9036 IVI-COM driver from Visual C++.

Smart Pointer Wrapper Classes

There are many ways to use COM objects, such as IVI-COM drivers, from Visual C++. The easiest way is to use the #import statement. This special compiler directive automatically generates smart pointer wrapper classes for every interface in your IVI-COM driver. These wrapper classes greatly simplify the use of IVI-COM drivers in C++.

Smart pointer wrapper classes have the following benefits:

  • They provide a simple syntax for instantiating the driver (e.g. calling CoCreateInstance).
  • They automatically call AddRef and Release when needed.
  • They automatically call QueryInterface when navigating to different interfaces on the driver.
  • Method parameters marked as [out, retval] appear as the method return value type instead of an HRESULT.
  • Properties can be accessed as a property instead of using get_ and put_ accessor functions.
  • Methods and properties throw exceptions rather than requiring explicit checks against an HRESULT return code.
  • String parameters (BSTRs) are transformed into the _bstr_t smart string class, which can be initialized with ANSI or Unicode strings.

The code in this section uses smart pointer wrappers. The #import statement supports a variety of optional parameters to exercise more precise control over the wrapper generation and format. See the MSDN documentation on #import for more details.

Referencing the Driver

In order to access any of the driver interfaces, the proper references to the AgM9036 driver DLL and IviDriver DLL must be created. Note that the order of the #import statements shown below is important. Compilation will fail if the order is incorrect, as there are dependencies between the types defined in the various DLLs.

C++ Copy image Copy Code
#import "IviDriverTypeLib.dll" no_namespace
#import "AgM9036.dll" no_namespace
#import "IviSessionFactory.dll" no_namespace    // can be omitted if not using session factory

Creating an Instance of the Driver

Unlike most environments that support COM, C++ does not automatically initialize COM, so this must be done explicitly. If you fail to perform this step, then any attempt to make any COM-based call (such as instantiating the driver) will fail.

C++ Copy image Copy Code
// Initialize COM, do this at the start of the program
HRESULT hr = ::CoInitialize(NULL);

// Uninitialize COM, do this at the end of the program
::CoUninitialize();

Creating a Driver Instance Directly

To use instrument specific capabilities, a reference to the driver DLL is required. To instantiate the driver directly, pass in the CLSID of the AgM9036 using the __uuidof C++ keyword, as shown below:

C++ Copy image Copy Code
IAgM9036Ptr spDriver(__uuidof(AgM9036));

Initializing the Driver

Calling Initialize will establish an I/O connection to an instrument (often referred to as an "I/O session") or setup the driver to work in simulation mode. Calling Close is required by the IVI specifications, else unpredictable driver behavior could result. Simply releasing the driver object (which the wrapper classes automatically do for you) is not sufficient. The reference count of the driver will never reach zero if Close is not called.

For more details on the Initialize function, see Initializing the Driver topic.

Initializing Using a Logical Name

The following code demonstrates how to initialize a driver using a Logical Name. A Logical Name must be used if the program is to be interchangeable. The "MyLogicalName" string shown in the example must be explicitly mapped by the end user to a Driver Session in the IVI Configuration Store. This is typically done using a 3rd-party configuration utility.

C++ Copy image Copy Code
spDriver->Initialize(_T("MyLogicalName"), VARIANT_FALSE, VARIANT_FALSE, _T(""));
spDriver->Close();

Initializing Using a Resource Descriptor

When interchangeability is not required, the driver is typically initialized using a resource descriptor, often a VISA resource descriptor, as shown below.

C++ Copy image Copy Code
spDriver->Initialize(_T("Controller"), VARIANT_FALSE, VARIANT_FALSE, _T(""));
spDriver->Close();

Initializing Using Options

This example shows how IVI-defined initialization options and driver-specific options can be passed to the Initialize function.

For more details on Initialize, see Initializing the Driver topic.

C++ Copy image Copy Code
// If VARIANT_TRUE, this will query the instrument model and fail initialization
// if the model is not supported by the driver
VARIANT_BOOL idQuery = VARIANT_FALSE;

// If VARIANT_TRUE, the instrument is reset at initialization
VARIANT_BOOL reset = VARIANT_FALSE;

// Setup IVI-defined initialization options
_bstr_t standardInitOptions = "Simulate=false";

// Setup driver-specific initialization options
_bstr_t driverSetupOptions = "DriverSetup= Model=M9036A, Trace=false";

spDriver->Initialize(_T("MyLogicalName"), idQuery, reset, standardInitOptions + _bstr_t(_T(",")) + driverSetupOptions);
spDriver->Close();

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

C++ Examples

When you installed the AgM9036, C++ example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

C++ examples are located in the VS.NET/Cpp directory:

Example | Description
CPP_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
CPP_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using Visual Basic 6

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Visual Basic 6

This section describes how to use the AgM9036 IVI-COM driver from Visual Basic 6.

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

Visual Basic Examples

When you installed the AgM9036, Visual Basic .NET 2008 example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

Visual Basic .NET examples are located in the VS.NET/VB directory. These examples were developed for VB2008 but can be converted to work with Visual Basic 6:

Example | Description
VB_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
VB_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using Agilent VEE Pro

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Agilent VEE Pro®

VEE Pro 9.2 or greater is recommended for use with the AgM9036 driver as it adds significant new features for using IVI-COM drivers. VEE Pro provides access to the AgM9036 driver COM object using .NET interop references. You may use Agilent VEE Pro's help for general information on using IVI-COM objects in Agilent VEE Pro. Look in the index for the following topics:
IVI, IVI-COM, Instrument Manager, Component Drivers

Note: As of version 9.2, VEE Pro does not directly recognize PXI instruments although it can still communicate with PXI instruments using IVI-COM drivers. Some steps require putting a “place-holder” instrument in place using a VXI address.

Referencing the AgM9036 IVI-COM Driver in VEE Pro

For complete details on how to configure VEE to work with the AgM9036 driver, please refer to the file named "Configuring VEE Pro" in the directory containing the VEE examples. To navigate to this file, from the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples and then in the file explorer go into the directory Agilent VEE Pro


Using LabVIEW

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using LabVIEW

The Agilent M9036 has a dedicated LabVIEW driver (commonly known as a LabVIEW plug-and-play project style driver or a LabVIEW G driver). That LabVIEW driver, and its help file are installed with the M9036 installer into the appropriate LabVIEW directories.

The remainder of this section describes how to call the AgM9036 IVI-COM driver directly from LabVIEW by using the LabVIEW Class Browser. The AgM9036 does not support a LabVIEW Class instrument driver such as IviDmm, IviScope, etc..

The LabVIEW Class Browser

The most convenient way to access the instrument-specific features of an IVI-COM driver is to use the Class Browser. This feature is available in LabVIEW version 8.0 and later. The Class Browser presents an intuitive hierarchical view of all methods and properties in the driver -- class-compliant and instrument-specific. From this hierarchical view, the LabVIEW developer can simply drag and drop methods and properties onto the block diagram and LabVIEW automatically creates the appropriately configured Invoke Node (for methods) or Property Node (for properties).

Building a Simple IVI Application in LabVIEW

This section provides step-by-step instructions for building a simple LabVIEW application with the AgM9036 IVI-COM driver.

NOTE: The pictures in the steps below show the M9018 chassis driver. The M9036 driver uses exactly the same steps, with the exception of the ResourceName used in step #7 in the "Initializing the Driver" section. The proper ResourceName for the M9036 is noted in that step.

Accessing the AgM9036 Driver from the Class Browser

The first step in building a LabVIEW application using an IVI-COM driver is to access the Class Browser and direct it to load the AgM9036 IVI-COM driver. From LabVIEW's perspective, the AgM9036 driver is simply a COM (aka "ActiveX") component. As such, it can be loaded via the ActiveX feature of the Class Browser.

To load the AgM9036 into the Class Browser

  1. From the View menu, choose Class Browser. The Class Browser window appears.
  2. From the Object Library combo box at the top, choose ActiveX and then Select Type Libraries... The system will likely pause for several seconds as LabVIEW scans your system for all installed COM components.
  3. From the Select Type Libraries dialog box that appears, check the checkbox labeled "IVI AgM9036 1.0 Type Library Version 1.0" and click OK.
  4. From the Class combo box, select AgM9036Lib.IAgM9036.
  5. The Properties and Methods window now displays the hierarchy of methods and properties available in the AgM9036 driver. The items with small blue dots are interface reference properties and allow you to navigate to sub-interfaces on the driver. Double-click on one of these, such as the System interface and the Properties and Methods window is updated to display the methods and properties of the sub-interface. To navigate back to the root of the hierarchy, click on the System hyperlink in the Selected property or method textbox near the bottom.

Initializing the Driver

The two main LabVIEW primitives required to access IVI-COM driver methods and properties are the Invoke Node (for methods) and the Property Node (for properties). Conveniently, the Class Browser automatically creates and configures these nodes for you.

Before any Invoke Node or Property Node can execute on the IVI-COM driver, it must be instantiated. This is accomplished using the Automation Open VI from the ActiveX palette. The following procedure explains how to instantiate and initialize the driver.

To instantiate and initialize the AgM9036 driver

  1. From the Class Browser, under Methods, choose the Initialize node from the hierarchy displayed in the Properties and Methods window. Drag and drop the node onto the block diagram.
  2. The Automation Open VI is used to instantiate the IVI-COM driver before executing the Initialize function. Right-click on the Initialize Invoke Node just at the top left corner at the reference input.

  3. Select ActiveX Palette and then Automation Open. This creates the Automation Open VI. Make sure the Automation Refnum output of the Automation Open VI is wired to the reference input of the Initialize Invoke Node. Also, make sure the error clusters of the two VIs are wired together.

  4. The Automation Open VI requires an input control. Right-click on the Automation Refnum input of the Automation Open VI and choose Select ActiveX Class and then choose Browse.
  5. From the Type Library combo box at the top, choose "AgM9036 Version 1.0". Expand the AgM9036 node and choose IAgM9036 (the first interface under the expanded node). Click OK.
  6. LabVIEW creates an Automation Refnum input control and wires it to the Automation Open VI. Make sure the error clusters of the two VIs are wired together.

  7. At this point, the VI will not compile since some of the required inputs of the Initialize Invoke Node have not be supplied. Right-click on the ResourceName input of the Initialize Invoke Node and choose Create and then Constant. LabVIEW places a constant string on the diagram and wires it to the ResourceName input. In the string constant created, enter the appropriate resource descriptor for connecting to the instrument. NOTE: For the M9036, the resource descriptor should be "Controller" instead of the "PXI5::0::0::INSTR" shown in the picture.
  8. Right-click on the IdQuery input of the Initialize Invoke Node, choose Create and then Constant. LabVIEW creates a constant boolean wired to the IdQuery input. Repeat this process with the Reset input.

  9. At this point, the application is executable. LabVIEW will instantiate the AgM9036 IVI-COM driver and call the Initialize function. However, we must properly close the IVI-COM driver. We must also have the ability to read and write driver properties. These final tasks are covered in the next sections.

Reading and Writing Properties

Once the driver has been instantiated with the Automation Open VI and the Initialize function executes, any method or property on the AgM9036 driver can be invoked. The previous sections explained how to call the Initialize method. Other driver methods are accessed in precisely the same fashion.

This section explains how to read and write driver properties.

To access properties on the AgM9036 driver

  1. From the Class Browser, choose any property from the hierarchy displayed in the Properties and Methods window. Drag and drop the node onto the block diagram.
  2. LabVIEW creates a Property Node for that property on the diagram. Wire the reference out terminal of the Initialize Invoke Node to the reference input terminal of the Property Node. Also, wire the error clusters together.

  3. By default, the Property Node is configured to read a driver property, as indicated by the small arrow on the right side of the node's terminal. Right-click on the Property Node terminal and select Create and then choose Indicator. This places an output indicator on the diagram and wires it to the Property Node. This reads the value of the selected property from the driver and present it in the indicator.
  4. To use a Property Node to write a property value to the driver, simply right-click on the Property Node and choose Change to Write. This reconfigures the Property Node to be a "setter" node, as indicated by the re-positioning of the small arrow to the left side of the node terminal.
  5. A single Property Node can be used to read and write multiple properties. This is accomplished by resizing the Property Node vertically. Move the cursor over the node and resizing handles appear at the top and bottom of the node. Use the resizing handles to drag the border of the node down to display additional terminals.
  6. To configure a specific terminal to access a particular property, right-click on a terminal and choose Select Property.... This brings up an additional Class Browser window, from which you can select the desired property. You can configure individual terminals to read or write by right-clicking the specific terminal and choosing Change To Read or Change To Write as appropriate. Note that multi-terminal Property Nodes execute in order from top to bottom.

Closing the Driver

To complete a LabVIEW application using the AgM9036 driver, it is important to properly close the driver. If the driver is not properly closed, unexpected behavior and resource leaks could result. Moreover, it is important to understand when to close the driver. If multiple VIs within an LabVIEW application need to access the driver, the instantiation and initialization of the driver is typically done in a dedicated VI as is the close operation described in this section. You generally do not open, access, and close an IVI-COM driver within a single LabVIEW VI. Nevertheless, the procedure described here applies to a single VI application and to applications that share a driver instance.

To close the AgM9036 driver

  1. From the Class Browser, choose the Close node from the hierarchy displayed in the Properties and Methods window. Drag-n-drop the node onto the block diagram.
  2. Wire the reference out terminal of the last Invoke Node or Property Node in your VI to the reference input of the Close Invoke Node. Also, wire the error clusters together.
  3. Executing the Close method on the driver instructs the driver to release any resources it is holding. It does not, however, tell LabVIEW to dispose of the driver instance. This is accomplished with the Close Reference VI.
  4. Right-click on the reference out terminal of the Close Invoke Node and choose ActiveX Palette and then select Reference Close.

  5. Wire the reference out terminal of the Close Invoke Node to the reference input of the Close Reference VI.
  6. Your simple LabVIEW application using the AgM9036 driver is now complete.


Using MATLAB

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using MATLAB®

MATLAB® provides rich support for building applications with IVI-COM drivers. Special preconfigured MATLAB classes allow you to access IVI-defined functionality. In addition, for accessing instrument-specific functionality, the AgM9036 driver includes a MATLAB wrapper file that is automatically installed by the AgM9036 driver installer at the following location:

    • For 32 bit platform : \Program Files\IVI Foundation\IVI\Components\MATLAB
    • For 64 bit platform : \Program Files (x86)\IVI Foundation\IVI\Components\MATLAB

Requirements for Using the AgM9036 in MATLAB

The following components are required to be installed (at the time the AgM9036 driver installer runs), in order to use the AgM9036 driver in MATLAB:

  • MATLAB R2010b (32-bit Version only) for both 32 bit and 64 bit platforms
  • MATLAB Instrument Control Toolbox

Accessing Instrument-Specific Functionality

In order to access the instrument-specific functionality of the AgM9036 driver, the driver must be directly referenced. Note that directly referencing the AgM9036 driver provides access to the class-compliant functionality as well. The class for the AgM9036 driver is located in the instrument.driver package.

The following code demonstrates how to directly access the AgM9036 driver.

driver = instrument.driver.AgM9036();

The DeviceSpecific property is used to gain access to the instrument-specific methods and properties, as shown below.

snum = driver.DeviceSpecific.System.SerialNumber;

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

Matlab Examples

When you installed the AgM9036, Matlab example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

Matlab examples are located in the Matlab directory:

Example | Description
ML_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
ML_M9036RouteTrigger | Demonstrates how to set the various trigger routes.

Further Information

To learn more about using MATLAB with IVI instrument drivers, visit:
http://www.mathworks.com/ivi.


Reference

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Reference

The topics in this section document each method and property exposed from the IVI-COM driver. Both a hierarchical and flat view of the AgM9036 driver functionality are available, as is a listing of instrument command strings and their associated driver methods and properties.

In This Section

Driver Hierarchy

Presents a hierarchical view of all driver methods and properties.

Driver Interfaces

Presents the driver functionality in a flat list of interfaces.

Instrument Command Reference

Provides a table associating instrument command strings with driver methods and properties.

Errors and Warnings

Presents all driver errors and warnings.


IVI-COM Hierarchy

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IVI-COM Hierarchy

Please click the Locate button to go to the Driver Hierarchy node in the Contents panel. Use the Contents panel to navigate the driver hierarchy.


IAgM9036 Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036 Interface
See Also

IAgM9036 interface.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Interface IAgM9036
   Inherits IIviDriver
C#
public interface IAgM9036 : IIviDriver
Visual C++
__interface IAgM9036 : IIviDriver

Properties

 | Name | Description
Public property | DriverOperation | Pointer to the IIviDriverOperation interface (Inherited from IIviDriver.)
Public property | Identity | Pointer to the IIviDriverIdentity interface (Inherited from IIviDriver.)
Public property | Initialized | Initialized is True between a successful call to the Initialize method and a successful call to the Close method, and False at all other times. (Inherited from IIviDriver.)
Public property | System | Pointer to the IAgM9036System interface.
Public property | TriggerRouting | Pointer to the IAgM9036TriggerRouting interface.
Public property | Utility | Pointer to the IIviDriverUtility interface (Inherited from IIviDriver.)
Top

Methods

 | Name | Description
Public method | Close | Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called. (Inherited from IIviDriver.)
Public method | Initialize | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model. (Inherited from IIviDriver.)
Top

See Also

Reference

Agilent.AgM9036.Interop Namespace


Close Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.Close Method
IIviDriver See Also

Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub Close ( _
)
C#
public void  Close(
)
Visual C++
HRESULT Close(
);

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


DriverOperation Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.DriverOperation Property
IIviDriver See Also

Pointer to the IIviDriverOperation interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property DriverOperation As IIviDriverOperation
C#
public IIviDriverOperation  DriverOperation { get; }
Visual C++
HRESULT get_DriverOperation(
    IIviDriverOperation**  val
);

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


Cache Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.Cache Property
IIviDriverOperation See Also

Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property Cache As Boolean
C#
public bool  Cache { get; set; }
Visual C++
HRESULT get_Cache(
    VARIANT_BOOL*  val
);
HRESULT put_Cache(
    VARIANT_BOOL  val
);

Remarks

Some attributes, such as the instrument Serial Number, which are deemed invariant may always be cached. The driver will generally never cache the Trigger Routing state, since that may change asynchronously. In the case of the AgM9036 Trigger driver, there are no attributes that are optionally cached under the control of this property. Therefore, this property has no effect.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


ClearInterchangeWarnings Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.ClearInterchangeWarnings Method
IIviDriverOperation See Also

--NOT SUPPORTED--

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub ClearInterchangeWarnings ( _
)
C#
public void  ClearInterchangeWarnings(
)
Visual C++
HRESULT ClearInterchangeWarnings(
);

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


DriverSetup Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.DriverSetup Property
IIviDriverOperation See Also

The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property DriverSetup As String
C#
public string  DriverSetup { get; }
Visual C++
HRESULT get_DriverSetup(
    BSTR*  val
);

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


GetNextCoercionRecord Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.GetNextCoercionRecord Method
IIviDriverOperation See Also

--NOT SUPPORTED--

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Function GetNextCoercionRecord ( _
) As String
C#
public string  GetNextCoercionRecord(
)
Visual C++
HRESULT GetNextCoercionRecord(
    BSTR*  retval
);

Return Value

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


GetNextInterchangeWarning Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.GetNextInterchangeWarning Method
IIviDriverOperation See Also

--NOT SUPPORTED--

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Function GetNextInterchangeWarning ( _
) As String
C#
public string  GetNextInterchangeWarning(
)
Visual C++
HRESULT GetNextInterchangeWarning(
    BSTR*  retval
);

Return Value

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


InterchangeCheck Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.InterchangeCheck Property
IIviDriverOperation See Also

The only valid value for this boolean property is False.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property InterchangeCheck As Boolean
C#
public bool  InterchangeCheck { get; set; }
Visual C++
HRESULT get_InterchangeCheck(
    VARIANT_BOOL*  val
);
HRESULT put_InterchangeCheck(
    VARIANT_BOOL  val
);

Remarks

This driver returns the IVI Value Not Supported error if an attempt is made to set this property to True.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


InvalidateAllAttributes Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.InvalidateAllAttributes Method
IIviDriverOperation See Also

If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub InvalidateAllAttributes ( _
)
C#
public void  InvalidateAllAttributes(
)
Visual C++
HRESULT InvalidateAllAttributes(
);

Remarks

In the case of the AgM9036 Trigger driver, there are no attributes that are optionally cached under the control of the Cache property. Therefore, this method performs no operation and returns Success.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


IoResourceDescriptor Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.IoResourceDescriptor Property
IIviDriverOperation See Also

The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property IoResourceDescriptor As String
C#
public string  IoResourceDescriptor { get; }
Visual C++
HRESULT get_IoResourceDescriptor(
    BSTR*  val
);

Remarks

The string that this attribute returns contains a maximum of 256 characters including the NULL character.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


LogicalName Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.LogicalName Property
IIviDriverOperation See Also

Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property LogicalName As String
C#
public string  LogicalName { get; }
Visual C++
HRESULT get_LogicalName(
    BSTR*  val
);

Remarks

The string that this attribute returns contains a maximum of 256 characters including the NULL character.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


QueryInstrumentStatus Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.QueryInstrumentStatus Property
IIviDriverOperation See Also

This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property QueryInstrumentStatus As Boolean
C#
public bool  QueryInstrumentStatus { get; set; }
Visual C++
HRESULT get_QueryInstrumentStatus(
    VARIANT_BOOL*  val
);
HRESULT put_QueryInstrumentStatus(
    VARIANT_BOOL  val
);

Remarks

The M9036A always returns status immediately upon execution of each function. Therefore, this property has no effect on the behavior of the this driver.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


RangeCheck Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.RangeCheck Property
IIviDriverOperation See Also

Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property RangeCheck As Boolean
C#
public bool  RangeCheck { get; set; }
Visual C++
HRESULT get_RangeCheck(
    VARIANT_BOOL*  val
);
HRESULT put_RangeCheck(
    VARIANT_BOOL  val
);

Remarks

In the case of the AgM9036 Trigger driver, the driver will generally perform all range checking regardless of the value of this property. Therefore, this property has no effect.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


RecordCoercions Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.RecordCoercions Property
IIviDriverOperation See Also

The only valid value for this boolean property is False.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property RecordCoercions As Boolean
C#
public bool  RecordCoercions { get; set; }
Visual C++
HRESULT get_RecordCoercions(
    VARIANT_BOOL*  val
);
HRESULT put_RecordCoercions(
    VARIANT_BOOL  val
);

Remarks

This driver returns the IVI Value Not Supported error if an attempt is made to set this property to True.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


ResetInterchangeCheck Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.ResetInterchangeCheck Method
IIviDriverOperation See Also

--NOT SUPPORTED--

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub ResetInterchangeCheck ( _
)
C#
public void  ResetInterchangeCheck(
)
Visual C++
HRESULT ResetInterchangeCheck(
);

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


Simulate Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation..::.Simulate Property
IIviDriverOperation See Also

If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Property Simulate As Boolean
C#
public bool  Simulate { get; set; }
Visual C++
HRESULT get_Simulate(
    VARIANT_BOOL*  val
);
HRESULT put_Simulate(
    VARIANT_BOOL  val
);

Remarks

If True, the driver simulates instrument driver I/O operations. If False, the driver communicates directly with the instrument.

If simulation is enabled, the driver functions do not perform instrument I/O. For output parameters that represent data, the driver functions return simulated values.

The default value is False. However, the default may be overridden by specifying a value in the IVI configuration store or by specifying a value in the initilization options.

See Also

Reference

IIviDriverOperation Interface
Ivi.Driver.Interop Namespace


Identity Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.Identity Property
IIviDriver See Also

Pointer to the IIviDriverIdentity interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Identity As IIviDriverIdentity
C#
public IIviDriverIdentity  Identity { get; }
Visual C++
HRESULT get_Identity(
    IIviDriverIdentity**  val
);

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


Description Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviComponentIdentity..::.Description Property
IIviComponentIdentity See Also

A brief description of the IVI driver.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Description As String
C#
public string  Description { get; }
Visual C++
HRESULT get_Description(
    BSTR*  val
);

See Also

Reference

IIviComponentIdentity Interface
Ivi.Driver.Interop Namespace


GroupCapabilities Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.GroupCapabilities Property
IIviDriverIdentity See Also

This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property GroupCapabilities As String
C#
public string  GroupCapabilities { get; }
Visual C++
HRESULT get_GroupCapabilities(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


Identifier Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.Identifier Property
IIviDriverIdentity See Also

The case-sensitive unique identifier of the implementing IVI-COM instrument driver.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Identifier As String
C#
public string  Identifier { get; }
Visual C++
HRESULT get_Identifier(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


InstrumentFirmwareRevision Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.InstrumentFirmwareRevision Property
IIviDriverIdentity See Also

The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property InstrumentFirmwareRevision As String
C#
public string  InstrumentFirmwareRevision { get; }
Visual C++
HRESULT get_InstrumentFirmwareRevision(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


InstrumentManufacturer Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.InstrumentManufacturer Property
IIviDriverIdentity See Also

The name of the manufacturer reported by the physical instrument.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property InstrumentManufacturer As String
C#
public string  InstrumentManufacturer { get; }
Visual C++
HRESULT get_InstrumentManufacturer(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


InstrumentModel Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.InstrumentModel Property
IIviDriverIdentity See Also

The model number or name reported by the physical instrument.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property InstrumentModel As String
C#
public string  InstrumentModel { get; }
Visual C++
HRESULT get_InstrumentModel(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


Revision Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviComponentIdentity..::.Revision Property
IIviComponentIdentity See Also

The revision of this IVI driver.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Revision As String
C#
public string  Revision { get; }
Visual C++
HRESULT get_Revision(
    BSTR*  val
);

See Also

Reference

IIviComponentIdentity Interface
Ivi.Driver.Interop Namespace


SpecificationMajorVersion Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.SpecificationMajorVersion Property
IIviDriverIdentity See Also

This driver is not IVI class compliant and returns zero.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property SpecificationMajorVersion As Integer
C#
public int  SpecificationMajorVersion { get; }
Visual C++
HRESULT get_SpecificationMajorVersion(
    long*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


SpecificationMinorVersion Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.SpecificationMinorVersion Property
IIviDriverIdentity See Also

This driver is not IVI class compliant and returns zero.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property SpecificationMinorVersion As Integer
C#
public int  SpecificationMinorVersion { get; }
Visual C++
HRESULT get_SpecificationMinorVersion(
    long*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


SupportedInstrumentModels Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity..::.SupportedInstrumentModels Property
IIviDriverIdentity See Also

A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property SupportedInstrumentModels As String
C#
public string  SupportedInstrumentModels { get; }
Visual C++
HRESULT get_SupportedInstrumentModels(
    BSTR*  val
);

See Also

Reference

IIviDriverIdentity Interface
Ivi.Driver.Interop Namespace


Vendor Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviComponentIdentity..::.Vendor Property
IIviComponentIdentity See Also

Returns the supplier of the IVI driver (Agilent Technologies).

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Vendor As String
C#
public string  Vendor { get; }
Visual C++
HRESULT get_Vendor(
    BSTR*  val
);

See Also

Reference

IIviComponentIdentity Interface
Ivi.Driver.Interop Namespace


Initialize Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.Initialize Method
IIviDriver See Also

Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub Initialize ( _
    ByVal  ResourceName As String  _
    ByVal  IdQuery As Boolean  _
    ByVal  Reset As Boolean  _
    ByVal  OptionString As String  _
)
C#
public void  Initialize(
    string  ResourceName,
    bool  IdQuery,
    bool  Reset,
    string  OptionString
)
Visual C++
HRESULT Initialize(
    BSTR  ResourceName,
    VARIANT_BOOL  IdQuery,
    VARIANT_BOOL  Reset,
    BSTR  OptionString
);

Parameters

ResourceName

An IVI logical name or an instrument specific string that identifies the instrument. For the AgM9036 Trigger driver, this string must specify "CONTROLLER" or an empty string.

IdQuery

Specifies whether to verify the ID of the instrument.

Reset

Specifies whether to reset the instrument.

OptionString

The user can use the OptionsString parameter to specify the initial values of certain IVI inherent attributes for the session. The format of an assignment in the OptionsString parameteris "Name=Value", where Name is one of: RangeCheck, QuerytInstrStatus, Cache, Simulate, RecordCoercions, InterchangeCheck,or DriverSetup. Value is either true or false except for DriverSetup. If the Options String parameter contains an assignment for the Driver Setup attribute, the Initialize function assumes that everything following "DriverSetup=" is part of the assignment.

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


Initialized Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.Initialized Property
IIviDriver See Also

Initialized is True between a successful call to the Initialize method and a successful call to the Close method, and False at all other times.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Initialized As Boolean
C#
public bool  Initialized { get; }
Visual C++
HRESULT get_Initialized(
    VARIANT_BOOL*  val
);

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


System Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036..::.System Property
IAgM9036 See Also

Pointer to the IAgM9036System interface.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property System As IAgM9036System
C#
public IAgM9036System  System { get; }
Visual C++
HRESULT get_System(
    IAgM9036System**  val
);

See Also

Reference

IAgM9036 Interface
Agilent.AgM9036.Interop Namespace


SerialNumber Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036System..::.SerialNumber Property
IAgM9036System See Also

The serial number of the embedded controller.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property SerialNumber As String
C#
public string  SerialNumber { get; }
Visual C++
HRESULT get_SerialNumber(
    BSTR*  val
);

See Also

Reference

IAgM9036System Interface
Agilent.AgM9036.Interop Namespace


TraceEnabled Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036System..::.TraceEnabled Property
IAgM9036System See Also

If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Property TraceEnabled As Boolean
C#
public bool  TraceEnabled { get; set; }
Visual C++
HRESULT get_TraceEnabled(
    VARIANT_BOOL*  val
);
HRESULT put_TraceEnabled(
    VARIANT_BOOL  val
);

Remarks

In addition to being able to enable tracing by changing this property, you may also enable tracing with additional options when initializing the driver.

The following tracing options can be specified as part of the OptionString (DriverSetup property) during initialization.

Option Name Description Default

Trace

If true, output trace log of all driver calls to an XML file as specified by the TraceName option. The log file may be viewed in your web browser. Beginning with Agilent IO Libraries Suite 16.0, driver trace messages may also be viewed with the IO Monitor utility. See IO Monitor help for details.

false

TraceName

If specified, sets the path and file name for the XML log file output when option Trace=true. It is not necessary to include the .xml extension with the name. Example: 'DriverSetup= Trace=true, TraceName=C:\Temp\TraceOut'.

If TraceName is not specified, tracing generates a unique XML trace file name in the application directory based on the date and time.

""

TraceArray

If true, array parameter data is output to the trace log.

false

TraceArraySizeMax

Specifies the maximum number of elements to trace for array parameters. Requires option 'TraceArray=true'.

10

TraceSizeMax

Specifies the maximum size of the trace log file in bytes. Once the file reaches this size, tracing will be turned off automatically by the driver.

1000000

TraceSaveInterval

Specifies how often the driver should save trace data to the trace log file. The value is specified in minutes.

1

See Also

Reference

IAgM9036System Interface
Agilent.AgM9036.Interop Namespace


TriggerRouting Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036..::.TriggerRouting Property
IAgM9036 See Also

Pointer to the IAgM9036TriggerRouting interface.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property TriggerRouting As IAgM9036TriggerRouting
C#
public IAgM9036TriggerRouting  TriggerRouting { get; }
Visual C++
HRESULT get_TriggerRouting(
    IAgM9036TriggerRouting**  val
);

See Also

Reference

IAgM9036 Interface
Agilent.AgM9036.Interop Namespace


Enabled Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.Enabled Property
IAgM9036TriggerRouting See Also

-- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property Enabled As Boolean
C#
public bool  Enabled { get; }
Visual C++
HRESULT get_Enabled(
    VARIANT_BOOL*  val
);

Remarks

Following Reset or ResetRoute, this property returns False.

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


GetRoute Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.GetRoute Method
IAgM9036TriggerRouting See Also

This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Sub GetRoute ( _
    ByRef  RouteConfiguration As AgM9036TriggerRouteEnum  _
    ByRef  PxiTrig As AgM9036PxiTrigEnum  _
)
C#
public void  GetRoute(
    ref AgM9036TriggerRouteEnum  RouteConfiguration,
    ref AgM9036PxiTrigEnum  PxiTrig
)
Visual C++
HRESULT GetRoute(
    AgM9036TriggerRouteEnum*  RouteConfiguration,
    AgM9036PxiTrigEnum*  PxiTrig
);

Parameters

RouteConfiguration

Returns the current arrangement of interconnects between software-generated trigger, external (front panel) connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

PxiTrig

Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Remarks

Following Reset or ResetRoute, this query returns:

  • RouteConfiguration == AgM9036TriggerRouteNone
  • PxiTrig == AgM9036PXI_TRIGNone

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


PxiTrig Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.PxiTrig Property
IAgM9036TriggerRouting See Also

-- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property PxiTrig As AgM9036PxiTrigEnum
C#
public AgM9036PxiTrigEnum  PxiTrig { get; }
Visual C++
HRESULT get_PxiTrig(
    AgM9036PxiTrigEnum*  val
);

Remarks

Following Reset or ResetRoute, this property returns False.

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


ResetRoute Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.ResetRoute Method
IAgM9036TriggerRouting See Also

This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Sub ResetRoute ( _
)
C#
public void  ResetRoute(
)
Visual C++
HRESULT ResetRoute(
);

Remarks

This function disables the trigger routing subsystem by resetting the TriggerRoute to None and resetting the backplane PXI_TRIG line to None.

Note that the trigger routing subsystem cannot be enabled or disabled independently of altering the trigger routing path and the selected backplane PXI_TRIG line.

Note that this function does not alter the state of the SoftwareRouteTriggerState property.

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


RouteConfiguration Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.RouteConfiguration Property
IAgM9036TriggerRouting See Also

-- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public ReadOnly Property RouteConfiguration As AgM9036TriggerRouteEnum
C#
public AgM9036TriggerRouteEnum  RouteConfiguration { get; }
Visual C++
HRESULT get_RouteConfiguration(
    AgM9036TriggerRouteEnum*  val
);

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


SetRoute Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.SetRoute Method
IAgM9036TriggerRouting See Also

This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Sub SetRoute ( _
    ByVal  RouteConfiguration As AgM9036TriggerRouteEnum  _
    ByVal  PxiTrig As AgM9036PxiTrigEnum  _
)
C#
public void  SetRoute(
    AgM9036TriggerRouteEnum  RouteConfiguration,
    AgM9036PxiTrigEnum  PxiTrig
)
Visual C++
HRESULT SetRoute(
    AgM9036TriggerRouteEnum  RouteConfiguration,
    AgM9036PxiTrigEnum  PxiTrig
);

Parameters

RouteConfiguration

Specifies the arrangement of interconnects between software-generated trigger, external (front panel) connection, and backplane connection.

PxiTrig

Specifies the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) to be connected to the embedded system controller.

Remarks

This function is normally used to enable the trigger routing subsystem of the embedded system controller. A valid RouteConfiguration parameter (other than the None enumeration) must be specified, and a valid PxiTrig parameter (other than the None enumeration) must be specified.

However, if the None enumeration is specified for the RouteConfiguration parameter and the None enumeration is specified for the PxiTrig parameter, then this function is equivalent to the ResetRoute function, in which case this function effectively disables the trigger routing subsystem.

If the None enumeration is specified for one of the parameters, but not for the other parameter, then an Invalid Value error will be raised.

The ResetRoute method resets this method's RouteConfiguration and PxiTrig parameters to their respective None enumerations, which effectively disables the triggering subsystem.

Note that the trigger routing subsystem cannot be enabled or disabled independently of altering the trigger routing path and the selected backplane PXI_TRIG line.

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


SoftwareRouteTriggerState Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting..::.SoftwareRouteTriggerState Property
IAgM9036TriggerRouting See Also

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Property SoftwareRouteTriggerState As Boolean
C#
public bool  SoftwareRouteTriggerState { get; set; }
Visual C++
HRESULT get_SoftwareRouteTriggerState(
    VARIANT_BOOL*  val
);
HRESULT put_SoftwareRouteTriggerState(
    VARIANT_BOOL  val
);

Remarks

Note that True specifies a high voltage (3.3 volts), while False specifies a low voltage (0 volts).

This is a level-sensitive control. You may generate a pulse by setting this property to one state, waiting for the length of pulse desired, and then setting this property to the opposite state.

Note that the ResetRoute method does not alter the state of this property. However, the Reset method of this driver resets this property to the power-on default of "False".

See Also

Reference

IAgM9036TriggerRouting Interface
Agilent.AgM9036.Interop Namespace


Utility Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver..::.Utility Property
IIviDriver See Also

Pointer to the IIviDriverUtility interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property Utility As IIviDriverUtility
C#
public IIviDriverUtility  Utility { get; }
Visual C++
HRESULT get_Utility(
    IIviDriverUtility**  val
);

See Also

Reference

IIviDriver Interface
Ivi.Driver.Interop Namespace


Disable Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.Disable Method
IIviDriverUtility See Also

Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub Disable ( _
)
C#
public void  Disable(
)
Visual C++
HRESULT Disable(
);

Remarks

The nature of this driver, and its control over circuitry in an embedded controller, is such that, except when actively performing a command, the instrument is always in a state which has minimal effect on the driver's host. Therefore, this function performs no action, but always returns success.

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


ErrorQuery Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.ErrorQuery Method
IIviDriverUtility See Also

This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub ErrorQuery ( _
    ByRef  ErrorCode As Integer  _
    ByRef  ErrorMessage As String  _
)
C#
public void  ErrorQuery(
    ref int  ErrorCode,
    ref string  ErrorMessage
)
Visual C++
HRESULT ErrorQuery(
    long*  ErrorCode,
    BSTR*  ErrorMessage
);

Parameters

ErrorCode

Instrument error code

ErrorMessage

Instrument error message

Remarks

The M9036A controller does not have any functions that report their status asynchronously. The result of this method will be consistent with an empty error queue. Specifically, the returned ErrorCode will be zero, and the ErrorMessage will indicate no error.

In all development environments, the caller will receive a successful return code.

In some present or future development environments, the successful return code may indicate the IVI Error Query Not Supported completion code, which is a warning, but not an error.

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


LockObject Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.LockObject Method
IIviDriverUtility See Also

This function inherently does not work in COM. As with all IVI-compliant drivers, the COM version of this function will return the IVI Function Not Supported error.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub LockObject ( _
)
C#
public void  LockObject(
)
Visual C++
HRESULT LockObject(
);

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


Reset Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.Reset Method
IIviDriverUtility See Also

Places the instrument in a known state as described below.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub Reset ( _
)
C#
public void  Reset(
)
Visual C++
HRESULT Reset(
);

Remarks

This function disables the trigger routing subsystem by resetting the TriggerRoute to None and resetting the backplane PXI_TRIG line to None.

This function also sets the state of the SoftwareRouteTriggerState property to False (a low voltage).

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


ResetWithDefaults Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.ResetWithDefaults Method
IIviDriverUtility See Also

Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub ResetWithDefaults ( _
)
C#
public void  ResetWithDefaults(
)
Visual C++
HRESULT ResetWithDefaults(
);

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


SelfTest Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.SelfTest Method
IIviDriverUtility See Also

The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub SelfTest ( _
    ByRef  TestResult As Integer  _
    ByRef  TestMessage As String  _
)
C#
public void  SelfTest(
    ref int  TestResult,
    ref string  TestMessage
)
Visual C++
HRESULT SelfTest(
    long*  TestResult,
    BSTR*  TestMessage
);

Parameters

TestResult

The numeric result from the self test operation. 0 = no error (test passed)

TestMessage

The self test status message

Remarks

The M9036A controller does not perform a self test. The result of this method will be consistent with a successful self-test. Specifically, the returned TestResult will be zero, and the TestMessage will indicate "Self test passed."

In all development environments, the caller will receive a successful return code.

In some present or future development environments, the successful return code may indicate the IVI Self Test Not Supported completion code, which is a warning, but not an error.

To cover future eventualities, the user should pass a buffer with at least 256 bytes for the TestMessage parameter.

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


UnlockObject Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility..::.UnlockObject Method
IIviDriverUtility See Also

This function inherently does not work in COM. As with all IVI-compliant drivers, the COM version of this function will return the IVI Function Not Supported error.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub UnlockObject ( _
)
C#
public void  UnlockObject(
)
Visual C++
HRESULT UnlockObject(
);

See Also

Reference

IIviDriverUtility Interface
Ivi.Driver.Interop Namespace


IIviDriver Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriver Interface
See Also

IVI Driver root interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviDriver
C#
public interface IIviDriver
Visual C++
__interface IIviDriver

Properties

 | Name | Description
Public property | DriverOperation | Pointer to the IIviDriverOperation interface
Public property | Identity | Pointer to the IIviDriverIdentity interface
Public property | Initialized | Initialized is True between a successful call to the Initialize method and a successful call to the Close method, and False at all other times.
Public property | Utility | Pointer to the IIviDriverUtility interface
Top

Methods

 | Name | Description
Public method | Close | Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.
Public method | Initialize | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Top

See Also

Reference

Ivi.Driver.Interop Namespace


IVI-COM Interfaces

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IVI-COM Interfaces

Please click the Locate button to go to the Driver Interfaces node in the Contents panel. Use the Contents panel to navigate the driver interfaces.


Agilent.AgM9036.Interop Namespace

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Agilent.AgM9036.Interop Namespace

IVI AgM9036 1.0 Type Library

Classes

 | Class | Description
Public class | AgM9036 |

Interfaces

 | Interface | Description
Public interface | IAgM9036 | IAgM9036 interface.
Public interface | IAgM9036System | IAgM9036System interface.
Public interface | IAgM9036TriggerRouting | IAgM9036TriggerRouting interface.

Enumerations

 | Enumeration | Description
Public enumeration | AgM9036ErrorCodesEnum |
Public enumeration | AgM9036PxiTrigEnum | Specifies a specific trigger signal on the PXI backplane.
Public enumeration | AgM9036TriggerRouteEnum | Specifies an available trigger routing connection within the embedded system controller.


AgM9036 Class

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036 Class
See Also

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Class AgM9036
C#
public class AgM9036
Visual C++
class AgM9036

See Also

Reference

Agilent.AgM9036.Interop Namespace


IAgM9036System Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036System Interface
See Also

IAgM9036System interface.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Interface IAgM9036System
C#
public interface IAgM9036System
Visual C++
__interface IAgM9036System

Properties

 | Name | Description
Public property | SerialNumber | The serial number of the embedded controller.
Public property | TraceEnabled | If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.
Top

See Also

Reference

Agilent.AgM9036.Interop Namespace


IAgM9036TriggerRouting Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IAgM9036TriggerRouting Interface
See Also

IAgM9036TriggerRouting interface.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Interface IAgM9036TriggerRouting
C#
public interface IAgM9036TriggerRouting
Visual C++
__interface IAgM9036TriggerRouting

Properties

 | Name | Description
Public property | Enabled | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Public property | PxiTrig | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Public property | RouteConfiguration | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Public property | SoftwareRouteTriggerState | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Top

Methods

 | Name | Description
Public method | GetRoute | This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.
Public method | ResetRoute | This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Public method | SetRoute | This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.
Top

See Also

Reference

Agilent.AgM9036.Interop Namespace


AgM9036ErrorCodesEnum Enumeration

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036ErrorCodesEnum Enumeration
See Also

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Enumeration AgM9036ErrorCodesEnum
C#
public enum AgM9036ErrorCodesEnum
Visual C++
public enum class AgM9036ErrorCodesEnum

Members

Member name | Value | Description
E_AGM9036_IO_GENERAL | 0x80044214 | I/O error.
E_AGM9036_IO_TIMEOUT | 0x80044215 | I/O timeout error.
E_AGM9036_MODEL_NOT_SUPPORTED | 0x80044216 | Instrument model does not support this feature.
E_AGM9036_PERSONALITY_NOT_ACTIVE | 0x80044211 | Personality is not active.
E_AGM9036_PERSONALITY_NOT_LICENSED | 0x80044213 | Personality is not licensed.
E_AGM9036_PERSONALITY_NOT_INSTALLED | 0x80044212 | Personality is not installed.

See Also

Reference

Agilent.AgM9036.Interop Namespace


AgM9036PxiTrigEnum Enumeration

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036PxiTrigEnum Enumeration
See Also

Specifies a specific trigger signal on the PXI backplane.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Enumeration AgM9036PxiTrigEnum
C#
public enum AgM9036PxiTrigEnum
Visual C++
public enum class AgM9036PxiTrigEnum

Members

Member name | Value | Description
AgM9036PxiTrig0 | 0x00000000 | This selects the PXI_TRIG0 line on the backplane.
AgM9036PxiTrig1 | 0x00000001 | This selects the PXI_TRIG1 line on the backplane.
AgM9036PxiTrig2 | 0x00000002 | This selects the PXI_TRIG2 line on the backplane.
AgM9036PxiTrig3 | 0x00000003 | This selects the PXI_TRIG3 line on the backplane.
AgM9036PxiTrig4 | 0x00000004 | This selects the PXI_TRIG4 line on the backplane.
AgM9036PxiTrig5 | 0x00000005 | This selects the PXI_TRIG5 line on the backplane.
AgM9036PxiTrig6 | 0x00000006 | This selects the PXI_TRIG6 line on the backplane.
AgM9036PxiTrig7 | 0x00000007 | This selects the PXI_TRIG7 line on the backplane.
AgM9036PxiTrigNone | 0x00000008 | This selection indicates that no PXI_TRIG backplane line is connected to the trigger routing circuitry.

See Also

Reference

Agilent.AgM9036.Interop Namespace


AgM9036TriggerRouteEnum Enumeration

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036TriggerRouteEnum Enumeration
See Also

Specifies an available trigger routing connection within the embedded system controller.

Namespace: Agilent.AgM9036.Interop
Assembly: Agilent.AgM9036.Interop (in Agilent.AgM9036.Interop.dll)

Syntax

Visual Basic
Public Enumeration AgM9036TriggerRouteEnum
C#
public enum AgM9036TriggerRouteEnum
Visual C++
public enum class AgM9036TriggerRouteEnum

Members

Member name | Value | Description
AgM9036TriggerRouteExternalToTriggerBus | 0x00000000 | Drives the trigger signal from the external connector on the front-panel of the embedded system controller to the specified PXI trigger bus backplane line. In this state the SoftwareTrigger property has no effect.
AgM9036TriggerRouteTriggerBusToExternal | 0x00000001 | Drives the trigger signal from the specified PXI trigger bus backplane line to the external connector on the front-panel of the embedded system controller. In this state the SoftwareTrigger property has no effect.
AgM9036TriggerRouteSoftwareToTriggerBus | 0x00000002 | Drives the current software trigger signal to the specified PXI trigger bus backplane line. In this state the external trigger connection is in a high-impedance state.
AgM9036TriggerRouteSoftwareToTriggerBusAndExternal | 0x00000003 | Drives the current software trigger signal to the specified PXI trigger bus backplane line and also drive the current software trigger signal to the external connector on the front-panel of the embedded system controller.
AgM9036TriggerRouteNone | 0x00000004 | Indicates the trigger routing function of the embedded system controller is in a reset (no connection) state. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.

See Also

Reference

Agilent.AgM9036.Interop Namespace


Ivi.Driver.Interop Namespace

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Ivi.Driver.Interop Namespace

Interfaces

 | Interface | Description
Public interface | IIviClassWrapper | IVI Driver class wrapper interface
Public interface | IIviComponentIdentity | IVI Driver component identity interface
Public interface | IIviDriver | IVI Driver root interface
Public interface | IIviDriverIdentity | IVI Driver identity interface
Public interface | IIviDriverOperation | IVI Driver operation interface
Public interface | IIviDriverUtility | IVI Driver utility interface

Enumerations

 | Enumeration | Description
Public enumeration | IviDriver_ErrorCodes | IVI Driver (inherent features) defined HRESULTS


IIviClassWrapper Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviClassWrapper Interface
See Also

IVI Driver class wrapper interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviClassWrapper
C#
public interface IIviClassWrapper
Visual C++
__interface IIviClassWrapper

Properties

 | Name | Description
Public property | NativeCHandle | The C session handle that the COM wrapper is currently using to communicate with an IVI-C specific driver.
Top

Methods

 | Name | Description
Public method | AttachToExistingCSession | Binds a COM wrapper object to an existing IVI-C specific driver session.
Top

See Also

Reference

Ivi.Driver.Interop Namespace


AttachToExistingCSession Method

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviClassWrapper..::.AttachToExistingCSession Method
IIviClassWrapper See Also

Binds a COM wrapper object to an existing IVI-C specific driver session.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Sub AttachToExistingCSession ( _
    ByVal  Vi As Integer  _
)
C#
public void  AttachToExistingCSession(
    int  Vi
)
Visual C++
HRESULT AttachToExistingCSession(
    long  Vi
);

Parameters

Vi

See Also

Reference

IIviClassWrapper Interface
Ivi.Driver.Interop Namespace


NativeCHandle Property

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviClassWrapper..::.NativeCHandle Property
IIviClassWrapper See Also

The C session handle that the COM wrapper is currently using to communicate with an IVI-C specific driver.

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public ReadOnly Property NativeCHandle As Integer
C#
public int  NativeCHandle { get; }
Visual C++
HRESULT get_NativeCHandle(
    long*  val
);

See Also

Reference

IIviClassWrapper Interface
Ivi.Driver.Interop Namespace


IIviComponentIdentity Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviComponentIdentity Interface
See Also

IVI Driver component identity interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviComponentIdentity
C#
public interface IIviComponentIdentity
Visual C++
__interface IIviComponentIdentity

Properties

 | Name | Description
Public property | Description | A brief description of the IVI driver.
Public property | Revision | The revision of this IVI driver.
Public property | Vendor | Returns the supplier of the IVI driver (Agilent Technologies).
Top

See Also

Reference

Ivi.Driver.Interop Namespace


IIviDriverIdentity Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverIdentity Interface
See Also

IVI Driver identity interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviDriverIdentity
   Inherits IIviComponentIdentity
C#
public interface IIviDriverIdentity : IIviComponentIdentity
Visual C++
__interface IIviDriverIdentity : IIviComponentIdentity

Properties

 | Name | Description
Public property | Description | A brief description of the IVI driver. (Inherited from IIviComponentIdentity.)
Public property | GroupCapabilities | This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.
Public property | Identifier | The case-sensitive unique identifier of the implementing IVI-COM instrument driver.
Public property | InstrumentFirmwareRevision | The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.
Public property | InstrumentManufacturer | The name of the manufacturer reported by the physical instrument.
Public property | InstrumentModel | The model number or name reported by the physical instrument.
Public property | Revision | The revision of this IVI driver. (Inherited from IIviComponentIdentity.)
Public property | SpecificationMajorVersion | This driver is not IVI class compliant and returns zero.
Public property | SpecificationMinorVersion | This driver is not IVI class compliant and returns zero.
Public property | SupportedInstrumentModels | A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.
Public property | Vendor | Returns the supplier of the IVI driver (Agilent Technologies). (Inherited from IIviComponentIdentity.)
Top

See Also

Reference

Ivi.Driver.Interop Namespace


IIviDriverOperation Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverOperation Interface
See Also

IVI Driver operation interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviDriverOperation
C#
public interface IIviDriverOperation
Visual C++
__interface IIviDriverOperation

Properties

 | Name | Description
Public property | Cache | Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.
Public property | DriverSetup | The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.
Public property | InterchangeCheck | The only valid value for this boolean property is False.
Public property | IoResourceDescriptor | The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.
Public property | LogicalName | Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.
Public property | QueryInstrumentStatus | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.
Public property | RangeCheck | Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.
Public property | RecordCoercions | The only valid value for this boolean property is False.
Public property | Simulate | If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.
Top

Methods

 | Name | Description
Public method | ClearInterchangeWarnings | --NOT SUPPORTED--
Public method | GetNextCoercionRecord | --NOT SUPPORTED--
Public method | GetNextInterchangeWarning | --NOT SUPPORTED--
Public method | InvalidateAllAttributes | If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.
Public method | ResetInterchangeCheck | --NOT SUPPORTED--
Top

See Also

Reference

Ivi.Driver.Interop Namespace


IIviDriverUtility Interface

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IIviDriverUtility Interface
See Also

IVI Driver utility interface

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Interface IIviDriverUtility
C#
public interface IIviDriverUtility
Visual C++
__interface IIviDriverUtility

Methods

 | Name | Description
Public method | Disable | Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.
Public method | ErrorQuery | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.
Public method | LockObject | This function inherently does not work in COM. As with all IVI-compliant drivers, the COM version of this function will return the IVI Function Not Supported error.
Public method | Reset | Places the instrument in a known state as described below.
Public method | ResetWithDefaults | Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.
Public method | SelfTest | The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.
Public method | UnlockObject | This function inherently does not work in COM. As with all IVI-compliant drivers, the COM version of this function will return the IVI Function Not Supported error.
Top

See Also

Reference

Ivi.Driver.Interop Namespace


IviDriver_ErrorCodes Enumeration

[image]

AgM9036 IVI Driver Reference Agilent Technologies
IviDriver_ErrorCodes Enumeration
See Also

IVI Driver (inherent features) defined HRESULTS

Namespace: Ivi.Driver.Interop
Assembly: Ivi.Driver.Interop (in Ivi.Driver.Interop.DLL)

Syntax

Visual Basic
Public Enumeration IviDriver_ErrorCodes
C#
public enum IviDriver_ErrorCodes
Visual C++
public enum class IviDriver_ErrorCodes

Members

Member name | Value | Description
S_IVI_SUCCESS | 0x00000000 | Success.
E_IVI_CANNOT_RECOVER | 0x80047000 | Unrecoverable failure.
E_IVI_INSTRUMENT_STATUS | 0x80047001 | Instrument error detected.
E_IVI_CANNOT_OPEN_FILE | 0x80047002 | File could not be opened.
E_IVI_READING_FILE | 0x80047003 | File could not be read.
E_IVI_WRITING_FILE | 0x80047004 | File could not be written.
E_IVI_INVALID_PATHNAME | 0x8004700B | The path name is invalid.
E_IVI_INVALID_VALUE | 0x80047010 | Invalid value for parameter or property.
E_IVI_METHOD_NOT_SUPPORTED | 0x80047011 | Method not supported.
E_IVI_PROPERTY_NOT_SUPPORTED | 0x80047012 | Property not supported.
E_IVI_VALUE_NOT_SUPPORTED | 0x80047013 | The enumeration value for the parameter is not supported.
E_IVI_NOT_INITIALIZED | 0x8004701D | A connection to the instrument has not been initialized.
E_IVI_UNKNOWN_CHANNEL_NAME | 0x80047020 | Channel or repeated capability name specified is not valid for the instrument.
E_IVI_TOO_MANY_OPEN_FILES | 0x80047023 | Too many files opened.
E_IVI_CHANNEL_NAME_REQUIRED | 0x80047044 | Channel or repeated capability name required.
E_IVI_MISSING_OPTION_NAME | 0x80047049 | The option string contains an entry without a name.
E_IVI_MISSING_OPTION_VALUE | 0x8004704A | The option string contains an entry without a value.
E_IVI_BAD_OPTION_NAME | 0x8004704B | The option string contains an entry with an unknown option name.
E_IVI_BAD_OPTION_VALUE | 0x8004704C | The option string contains an entry with an unknown option value.
E_IVI_OUT_OF_MEMORY | 0x80047056 | The necessary memory could not be allocated.
E_IVI_OPERATION_PENDING | 0x80047057 | Operation in progress.
E_IVI_NULL_POINTER | 0x80047058 | Null pointer passed for parameter or property.
E_IVI_UNEXPECTED_RESPONSE | 0x80047059 | Unexpected response from the instrument.
E_IVI_FILE_NOT_FOUND | 0x8004705B | File not found.
E_IVI_INVALID_FILE_FORMAT | 0x8004705C | The file format is invalid.
E_IVI_STATUS_NOT_AVAILABLE | 0x8004705D | The instrument status is not available.
E_IVI_ID_QUERY_FAILED | 0x8004705E | Instrument ID query failed.
E_IVI_RESET_FAILED | 0x8004705F | Instrument reset failed.
E_IVI_RESOURCE_UNKNOWN | 0x80047060 | Insufficient location information or resource not present in the system.
E_IVI_ALREADY_INITIALIZED | 0x80047061 | The driver is already initialized.
E_IVI_CANNOT_CHANGE_SIMULATION_STATE | 0x80047062 | The simulation state cannot be changed.
E_IVI_INVALID_NUMBER_OF_LEVELS_IN_SELECTOR | 0x80047063 | The number of levels in the selector is not valid for the repeated capability.
E_IVI_INVALID_RANGE_IN_SELECTOR | 0x80047064 | The range is not valid for the repeated capability.
E_IVI_UNKNOWN_NAME_IN_SELECTOR | 0x80047065 | Unknown name in selector.
E_IVI_BADLY_FORMED_SELECTOR | 0x80047066 | The repeated capability selector is badly-formed.
E_IVI_UNKNOWN_PHYSICAL_IDENTIFIER | 0x80047067 | Unknown physical repeated capability selector.
S_IVI_NSUP_ID_QUERY | 0x00047065 | Identification query not supported.
S_IVI_NSUP_RESET | 0x00047066 | Reset operation not supported.
S_IVI_NSUP_SELF_TEST | 0x00047067 | Self test operation not supported.
S_IVI_NSUP_ERROR_QUERY | 0x00047068 | Error query operation not supported.
S_IVI_NSUP_REV_QUERY | 0x00047069 | Revision query not supported.

See Also

Reference

Ivi.Driver.Interop Namespace


Instrument Command Reference

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Instrument Command Reference

This is the reference for all the instrument commands issued by the driver.

Instrument Commands

Instrument Command Reference
Top


Errors and Warnings

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Errors and Warnings

Errors

Name | Value (Hex) | Value (Decimal) | Description
E_IVI_CANNOT_RECOVER | 0x80047000 | -2147192832 | Failure cannot recover.
E_IVI_INSTRUMENT_STATUS | 0x80047001 | -2147192831 | Instrument error detected. Use ErrorQuery() to determine error(s).
E_IVI_CANNOT_OPEN_FILE | 0x80047002 | -2147192830 | Cannot open file.
E_IVI_READING_FILE | 0x80047003 | -2147192829 | Error reading file.
E_IVI_WRITING_FILE | 0x80047004 | -2147192828 | Error writing file.
E_IVI_INVALID_PATHNAME | 0x8004700B | -2147192821 | The path name is invalid.
E_IVI_INVALID_VALUE | 0x80047010 | -2147192816 | Invalid value (%1) for method %2, parameter %3.
E_IVI_METHOD_NOT_SUPPORTED | 0x80047011 | -2147192815 | Does not support this class-compliant feature: method %1.
E_IVI_PROPERTY_NOT_SUPPORTED | 0x80047012 | -2147192814 | Does not support this class-compliant feature: property %1.
E_IVI_VALUE_NOT_SUPPORTED | 0x80047013 | -2147192813 | Does not support this class-compliant feature: (enumeration) value %1 passed as the value for parameter %2 in method %3.
E_IVI_NOT_INITIALIZED | 0x8004701D | -2147192803 | A connection to the instrument has not been established.
E_IVI_UNKNOWN_CHANNEL_NAME | 0x80047020 | -2147192800 | Unknown channel name.
E_IVI_TOO_MANY_OPEN_FILES | 0x80047023 | -2147192797 | Too many files are opened.
E_IVI_CHANNEL_NAME_REQUIRED | 0x80047044 | -2147192764 | A channel name is required.
E_IVI_MISSING_OPTION_NAME | 0x80047049 | -2147192759 | The option string is missing an option name.
E_IVI_MISSING_OPTION_VALUE | 0x8004704A | -2147192758 | The option string is missing an option value.
E_IVI_BAD_OPTION_NAME | 0x8004704B | -2147192757 | The %1 name in the option string is unknown.
E_IVI_BAD_OPTION_VALUE | 0x8004704C | -2147192756 | The %1 value in the option string is unknown.
E_IVI_OUT_OF_MEMORY | 0x80047056 | -2147192746 | Could not allocate necessary memory.
E_IVI_OPERATION_PENDING | 0x80047057 | -2147192745 | Operation in progress.
E_IVI_NULL_POINTER | 0x80047058 | -2147192744 | Null pointer passed for method %1, parameter %2.
E_IVI_UNEXPECTED_RESPONSE | 0x80047059 | -2147192743 | Unexpected response from the instrument.
E_IVI_FILE_NOT_FOUND | 0x8004705B | -2147192741 | File not found.
E_IVI_INVALID_FILE_FORMAT | 0x8004705C | -2147192740 | Invalid file format.
E_IVI_STATUS_NOT_AVAILABLE | 0x8004705D | -2147192739 | The instrument status is not available.
E_IVI_ID_QUERY_FAILED | 0x8004705E | -2147192738 | Instrument ID query failed.
E_IVI_RESET_FAILED | 0x8004705F | -2147192737 | Instrument reset failed.
E_IVI_RESOURCE_UNKNOWN | 0x80047060 | -2147192736 | Unknown resource.
E_IVI_ALREADY_INITIALIZED | 0x80047061 | -2147192735 | The driver is already initialized.
E_IVI_CANNOT_CHANGE_SIMULATION_STATE | 0x80047062 | -2147192734 | The simulation state cannot be changed.
E_IVI_INVALID_NUMBER_OF_LEVELS_IN_SELECTOR | 0x80047063 | -2147192733 | The number of levels in the selector is not valid for the %1 repeated capability.
E_IVI_INVALID_RANGE_IN_SELECTOR | 0x80047064 | -2147192732 | The range %1 is not valid for the repeated capability %2.
E_IVI_UNKNOWN_NAME_IN_SELECTOR | 0x80047065 | -2147192731 | Unknown name in selector.
E_IVI_BADLY_FORMED_SELECTOR | 0x80047066 | -2147192730 | The repeated capability selector is badly-formed.
E_IVI_UNKNOWN_PHYSICAL_IDENTIFIER | 0x80047067 | -2147192729 | Unknown physical repeated capability selector.
E_AGM9036_PERSONALITY_NOT_ACTIVE | 0x80044211 | -2147204591 | Personality is not active.
E_AGM9036_PERSONALITY_NOT_INSTALLED | 0x80044212 | -2147204590 | Personality is not installed.
E_AGM9036_PERSONALITY_NOT_LICENSED | 0x80044213 | -2147204589 | Personality is not licensed.
E_AGM9036_IO_GENERAL | 0x80044214 | -2147204588 | I/O error: %1.
E_AGM9036_IO_TIMEOUT | 0x80044215 | -2147204587 | I/O timeout error: %1.
E_AGM9036_MODEL_NOT_SUPPORTED | 0x80044216 | -2147204586 | Instrument model does not support this feature: %1.
Top

Warnings

Name | Value (Hex) | Value (Decimal) | Description
S_IVI_SUCCESS | 0x0 | 0 | Success.
S_IVI_NSUP_ID_QUERY | 0x47065 | 290917 | ID Query is not supported by this instrument.
S_IVI_NSUP_RESET | 0x47066 | 290918 | Reset is not supported by this instrument.
S_IVI_NSUP_SELF_TEST | 0x47067 | 290919 | Self test is not supported by this instrument.
S_IVI_NSUP_ERROR_QUERY | 0x47068 | 290920 | Error query is not supported by this instrument.
S_IVI_NSUP_REV_QUERY | 0x47069 | 290921 | Firmware revision query is not supported by this instrument.
Top


AgM9036 IVI-C Driver

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036 IVI-C Driver

The AgM9036 driver includes a fully compliant IVI-C driver. The topics in this section detail how to perform specific programming tasks using the IVI-C functionality available with the AgM9036 driver.

In This Section

Initializing the IVI-C Driver

Presents the steps required to properly initialize the IVI-C driver.

Accessing Instrument-Specific Functionality

Explains how to access the specialized functionality of the AgM9036 driver.

Using Simulation

Provides information on using the simulation capabilities of the driver.

Programming with the IVI-C Driver in Various Development Environment

Demonstrates how the AgM9036 driver can be used in a various application development environments (ADEs).

Reference

Presents reference documentation for each IVI-C function and attribute.


Initializing the IVI-C Driver

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Initializing the IVI-C Driver

There are two basic ways to initialize the IVI-C driver -- invoking the Initialize function directly on the specific driver and using an IVI-C class driver. If the client application is to be interchangeable, then the appropriate class driver must be used. Class drivers require that the first parameter passed to the Initialize function be a logical name for the driver. Instantiating the driver by name keeps the client program from having any dependencies on a specific driver and enables the application to be interchangeable.

If interchangeability is not necessary for a particular client application, it is often simpler to initialize the IVI-C driver directly. This avoids the need for obtaining an IVI-C class driver from a 3rd-party vendor (since the IVI Foundation does not develop or distribute IVI-C class drivers). When using the specific driver directly, the client application will necessarily have references to the specific driver (through the use of the "AgM9036" in function call names and by directly references AgM9036.h and AgM9036.lib); For many applications, this is perfectly acceptable.

The examples below in the section describing the Initialize function will present both techniques for initializing an IVI-C driver.

Calling the Initialize Function

The IVI-defined Initialize function offers a variety of options and parameters that control fundamental aspects of the driver's behavior. It is critical to understand what options are available and how they impact driver operation.

ResourceName

The resource name parameter can be a logical name present in the IVI Configuration Store or a physical resource descriptor. If the ResourceName is a logical name, then additional options stored in the IVI Configuration Store will be loaded and processed. This allows client code to reuse driver option settings and to keep the driver code as concise as possible, by removing settings that can be stored in the IVI Configuration Store. It is important to note that any parameters or options passed directly to the Initialize function via the OptionString parameter (discussed below) override any settings found in the IVI Configuration Store.

The AgM9036 driver uses only "Controller" or "Null" as the resource name.

IdQuery

If this is enabled, the driver will query the instrument model and compare it with a list of instrument models that is supported by the driver. If the model is not supported, Initialize will fail with the IVI_ERROR_ID_QUERY_FAILED error code.

Reset

If this is enabled, the driver will perform a reset of the instrument. If the reset fails, Initialize will fail with the IVI_ERROR_RESET_FAILED error code.

OptionString

The OptionString allows the user to pass optional settings to the driver. These settings override any settings that are specified in the IVI Configuration Store. If the IVI Configuration Store is not used (a resource descriptor is passed as the ResourceName instead of a logical name) then any setting that is not specified has a default value as specified by IVI.

Option Name | Description | Default
Simulate | Specifies whether or not the IVI specific driver simulates instrument driver I/O operations. If simulation is enabled, the specific driver functions do not perform instrument I/O. For output parameters that represent instrument data, the specific driver functions return simulated values. | false
DriverSetup | Specifies additional settings supported by the driver, but not defined by IVI. | ""

DriverSetup

This is used to specify settings that are supported by the driver but not defined by IVI. If the Options String parameter contains an assignment for the Driver Setup attribute, the Initialize function assumes that everything following 'DriverSetup=' is part of the assignment. The following settings are supported by the AgM9036 driver.

Option Name | Description | Default
Model | Instrument model to use during simulation. Must be one of the supported model strings as returned by the SUPPORTED_INSTRUMENT_MODELS attribute. | (default_model)
Trace | If true, output trace log of all driver calls to an XML file in the same directory as the application executable accessing the driver or as specified by the TraceName option. The log file may be viewed in your web browser. Beginning with Agilent IO Libraries Suite 16.0, driver trace messages may also be viewed with the IO Monitor utility. See IO Monitor help for details. | false
TraceName | If specified, sets the path and file name for the XML log file output when option Trace=true. It is not necessary to include the .xml extension with the name. Example: 'DriverSetup = Trace=true, TraceName=C:\Temp\TraceOut' If not specified, tracing generates a unique XML trace file name based on the date and time. A new file is created each time the driver is initialized with tracing enabled. | ""
TraceArray | If true, array parameter data is output to the trace log. | false
TraceArraySizeMax | Specifies the maximum number of elements to trace for array parameters. Requires option 'TraceArray=true'. | 10
TraceSizeMax | Specifies the maximum size of the trace log file in bytes. Once the file reaches this size, tracing will be turned off automatically by the driver. | 1000000
TraceSaveInterval | Specifies how often the driver should save trace data to the trace log file. The value is specified in minutes. | 1

Example 1 (simulation)

The following code initializes the driver in simulation mode and specifies the model to simulate.

C++ Copy image Copy Code
#include "AgM9036.h" // Specific driver header file

void main()
{
  ViStatus status;
  ViSession session;
  ViReal64 reading;

  // Initialize the driver with no range checking and no state caching
  // This will also check the instrument ID to make sure it is supported
  // and reset the instrument
  status = AgM9036_InitWithOptions("MyLogicalName", VI_TRUE, VI_TRUE, "Simulate=true, DriverSetup= Model=M9036A", &session);

  // ... call driver functions

  status = AgM9036_close(session);
}


Accessing Instrument-Specific Functionality

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Accessing Instrument-Specific Functionality

As the name implies, the instrument-specific capabilities are those methods and properties that are unique to the instrument. In practice, the instrument-specific portion of the driver exposes the full functionality of the instrument -- including functionality that may also be available in the class-compliant capabilities. Users that do not care about interchangeability or that need to access functionality that is not defined by IVI will use the instrument-specific interfaces in application programs.

When to use the instrument specific interfaces

  • When the required functionality is not exposed in the class-compliant interfaces.
  • When interchangeability is not a requirement.
  • When performance is critical. Sometimes a driver may perform better using the instrument specific interfaces because they match the instrument functionality more closely than the class-compliant interfaces.

Example

The following example demonstrates accessing instrument-specific function on the driver. Note that instrument-specific function calls are always prefixed with the instrument-specific prefix ("AgM9036"). In contrast, calls to IVI-defined class-compliant functions are prefixed with the IVI class name.

C++ Copy image Copy Code
#include "AgM9036.h"

void main()
{
  ViStatus status;
  ViSession session;
  ViReal64 reading;
  ViChar str[128];

  status = AgM9036_InitWithOptions("MyLogicalName", VI_TRUE, VI_TRUE, "", &session);

  status = AgM9036_GetAttributeViString(session, "", AGM9036_ATTR_SPECIFIC_DRIVER_REVISION, 128, str);

  status = AgM9036_close(session);
}


Using Simulation

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Simulation

An IVI driver can operate without the presence of an actual instrument by using simulation mode. When simulation is turned on, the driver performs no instrument communication, but attempts to generate results which allow client applications to reasonably execute. You can turn on simulation using the following technique:

  • Passing the "simulate=VI_TRUE" option string parameter to the InitWithOptions function.

The IVI-C driver contains a SIMULATE attribute. Changing the current simulation state after initialization is not supported and will return an error. This is because you cannot initiate or disable a live I/O session with an instrument after you have called the InitWithOptions function.

Using The Option String

The fourth and last parameter to the InitWithOptions function is the option string. See the help on InitWithOptions for more details. To turn simulation on with the option string, include the following in the option string:

simulate=VI_TRUE

For example, the InitWithOptions call might look like this:

AgM9036_InitWithOptions("Controller", VI_TRUE, VI_TRUE, "Simulate=VI_TRUE", &session);

When the simulate option is set VI_TRUE, the value of the resource descriptor parameter (the first parameter above) is ignored. This is because no I/O connection will be made with the instrument, as is required by IVI-3.1: Driver Architecture Specification.

The Driver Session Simulate Attribute

A DriverSession in the IVI Configuration Store contains properties for the same items which can be set with the option string parameter. The name of a DriverSession, or the name of a LogicalName which points to a DriverSession, can be used as the first parameter to InitWithOptions. If the SIMULATE attribute in the DriverSession is true, the driver is initialized in simulation mode.

Changing the Instrument Model

Many drivers support more than one instrument model. Drivers will typically select one of these as the default model by creating a special type of entry in the IVI Configuration Store known as a Configurable Initial Settings. You can modify the Model value in the Configurable Initial Settings for the DriverSession of interest, or you can simply specify the model to simulate at runtime during the call to Initialize.

To have the driver simulate a specific model of your choosing, simply add the desired model to the DriverSetup string using the following special syntax:

Simulate=VI_TRUE, DriverSetup=Model=M9036A

The complete InitWithOptions call becomes:

AgM9036_InitWithOptions("Controller", VI_TRUE, VI_TRUE, "Simulate=VI_TRUE, DriverSetup= Model=M9036A", &session);

If you set the model to a value not supported by the driver, the driver reports an error.

Limitations of Simulation

Simulation is designed to allow the driver to be used without an instrument or any I/O software or hardware. However, simulation is not intended to fully emulate the instrument. There are some important differences you should be aware of:

  • There is often no parameter range checking or coercion in simulation mode. Values that result in "parameter out of range" errors on the instrument, might or might not be accepted without errors in simulation mode.
  • Measurement data is not live. Most data queries will return a fixed value or a small array of values.


Programming with the IVI-C Driver in Various Development Environments

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Programming with the IVI-C Driver in Various Development Environments

IVI-C drivers are implemented using standard Windows DLL technology. Consequently, IVI-C drivers can be used in a wide variety of development environments.

The topics in this section provide detailed instructions on how to access and use IVI-C drivers in a variety of popular development environments. Each topic includes a complete example of IVI-C driver usage.

In This Section

Using LabWindows™/CVI

Explains how to use the IVI-C driver in National Instruments® LabWindows/CVI.

Using LabVIEW®

Provides instructions on how to use the IVI-C driver in National Instruments LabVIEW.

Using Visual C++

Describes the process for including an IVI-C driver in a Visual C++ project.

Using .NET

Explains how to use the driver in .NET languages, such as VB.NET and C#.


Using LabWindows/CVI

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using LabWindows™/CVI

This section describes how to use the AgM9036 IVI-C driver from LabWindows™/CVI.

Adding the Instrument Driver to the Project

In order to access any of the driver functions, the proper header file (.h) must be included in the project and the proper import library (.lib) must be referenced. LabWindows can automatically reference these files given the location of the function panel file (.fp). The sections below explain the steps required to add the instrument driver to a LabWindows project based on the .fp file.

Note that this section demonstrates usage of the driver using instrument-specific references:

  1. From the Edit menu, choose Add Files to Project... and select Instrument (.fp).
  2. Browse to the location of the AgM9036.fp file. The .fp file is installed in the "Drivers\AgM9036" folder of your IVI installation folder. Typically this will be something like the following:
    "C:\Program Files\IVI Foundation\IVI\Drivers\AgM9036"
  3. LabWindows adds the driver to your project and loads it automatically.

Initializing the Driver

Calling InitWithOptions will establish an I/O connection to an instrument (often referred to as an "I/O session") or setup the driver to work in simulation mode. Calling close is required by the IVI specifications, else unpredictable driver behavior could result. Any resources held by the driver will not be properly released if close is not called.

For more details on initializing the driver, see Initializing the Driver topic.

Initializing Using a Logical Name

The following code demonstrates how to initialize a driver using a Logical Name. A Logical Name must be used if the program is to be interchangeable. The "MyLogicalName" string shown in the example must be explicitly mapped by the end user to a Driver Session in the IVI Configuration Store. This is typically done using a 3rd-party configuration utility.

LabWindows/CVI Copy image Copy Code
ViSession session;
ViStatus status;
status = AgM9036_InitWithOptions("MyLogicalName", VI_TRUE, VI_TRUE, "", &session);
status = AgM9036_close(session);

Initializing Using a Resource Descriptor

When interchangeability is not required, the driver is typically initialized using a resource descriptor, often a VISA resource descriptor, as shown below.

C++ Copy image Copy Code
ViSession session;
ViStatus status;
status = AgM9036_InitWithOptions("Controller", VI_TRUE, VI_TRUE, "", &session);
status = AgM9036_close(session);

Initializing Using Options

This example shows how IVI-defined initialization options and driver-specific options can be passed to the Initialize function.

For more details on initializing the driver, see Initializing the Driver topic.

C++ Copy image Copy Code
// If true, this will query the instrument model and fail initialization
// if the model is not supported by the driver
ViBoolean idQuery = VI_FALSE;

// If true, the instrument is reset at initialization
ViBoolean reset = VI_FALSE;

// Setup IVI-defined initialization options
ViConstString standardInitOptions = "Simulate=false";

status = AgM9036_InitWithOptions("MyLogicalName", idQuery, reset, standardInitOptions, &session);
status = AgM9036_close(vi);

Accessing Attributes

Accessing attributes in an IVI-C driver is accomplished via a set of IVI-defined accessor functions. There are two accessor functions for each attribute type -- one accessor for reading attribute values and another accessor for writing attribute values.

The standard attribute accessors for reading attribute values are:

  • GetAttributeViInt32
  • GetAttributeViInt64
  • GetAttributeViReal64
  • GetAttributeViBoolean
  • GetAttributeViString

Correspondingly, the standard attribute accessors for writing attribute values are:

  • SetAttributeViInt32
  • SetAttributeViInt64
  • SetAttributeViReal64
  • SetAttributeViBoolean
  • SetAttributeViString

Each attribute accessor takes an attribute ID that uniquely identifies the attribute to access. These attribute IDs are #define'd constants listed in the AgM9036.h header file and documented in the "Attributes by Name" section of the help file.

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

LabWindows™/CVI Examples

When you installed the AgM9036, C/C++ example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

For LabWindows development, please refer to the C/C++ examples located in the VS.NET/AnsiC directory:

Example | Description
LV_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
LV_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using LabVIEW

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using LabVIEW

The Agilent AgM9036 supplies an IVI-C LabVIEW driver and associated help file. Both the driver and the help file are installed with the controller software.

Programming the Driver

For further information on how to program the AgM9036, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

LabVIEW Examples

When you installed the AgM9036, LabVIEW example programs were installed. The LabVIEW trigger driver and help files exist only in the Program Files/Agilent/M9036/LabVIEW Driver or the Program Files (x86)/Agilent/M9036/LabVIEW Driver folder.

LabVIEW examples are located in the LabVIEW directory:

Example | Description
LV_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
LV_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using Visual C++

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using Visual C++

This section describes how to use the AgM9036 IVI-C driver from Visual C++

Referencing the Driver

In order to access any of the driver functions, the proper header file (.h) must be included in the project and the proper import library (.lib) must be referenced. This section demonstrates usage of the driver using instrument-specific references.

To use the AgM9036 specific driver, perform the following steps in Visual Studio.

  1. In solution explorer, right-click on the project and choose Properties.
  2. In the property pages dialog, expand the Linker node and select Input.
  3. In the Additional Dependencies field, enter "AgM9036.lib".
  4. While still in the Linker node, select General.
  5. In the Additional Library Directories field, enter one of the following values:
    • For Win32 platform builds: "$(IVIROOTDIR32)\Lib\msc"
    • For x64 platform builds: "$(IVIROOTDIR32)\Lib_x64\msc"
  6. In the property pages dialog, expand the C/C++ node and select General.
  7. In the Additional Include Directories field, enter "$(IVIROOTDIR32)/Include".
  8. Click OK.
  9. In the main application source file (.cpp), add the following line to the top of the file:

    #include "AgM9036.h"

Initializing the Driver

Calling InitWithOptions will establish an I/O connection to an instrument (often referred to as an "I/O session") or setup the driver to work in simulation mode. Calling close is required by the IVI specifications, else unpredictable driver behavior could result. Any resources held by the driver will not be properly released if close is not called.

For more details on initializing the driver, see Initializing the Driver topic.

Initializing Using a Logical Name

The following code demonstrates how to initialize a driver using a Logical Name. A Logical Name must be used if the program is to be interchangeable. The "MyLogicalName" string shown in the example must be explicitly mapped by the end user to a Driver Session in the IVI Configuration Store. This is typically done using a 3rd-party configuration utility.

C++ Copy image Copy Code
ViSession session;
ViStatus status;
status = AgM9036_InitWithOptions("MyLogicalName", VI_TRUE, VI_TRUE, "", &session);
status = AgM9036_close(session);

Initializing Using a Resource Descriptor

When interchangeability is not required, the driver is typically initialized using a resource descriptor, often a VISA resource descriptor, as shown below.

C++ Copy image Copy Code
ViSession session;
ViStatus status;
status = AgM9036_InitWithOptions("Controller", VI_TRUE, VI_TRUE, "", &session);
status = AgM9036_close(session);

Initializing Using Options

This example shows how IVI-defined initialization options and driver-specific options can be passed to the Initialize function.

For more details on initializing the driver, see Initializing the Driver topic.

C++ Copy image Copy Code
// If true, this will query the instrument model and fail initialization
// if the model is not supported by the driver
ViBoolean idQuery = VI_FALSE;

// If true, the instrument is reset at initialization
ViBoolean reset = VI_FALSE;

// Setup IVI-defined initialization options
ViConstString standardInitOptions = "Simulate=false";

status = AgM9036_InitWithOptions("MyLogicalName", idQuery, reset, standardInitOptions, &session);
status = AgM9036_close(vi);

Accessing Attributes

Accessing attributes in an IVI-C driver is accomplished via a set of IVI-defined accessor functions. There are two accessor functions for each attribute type -- one accessor for reading attribute values and another accessor for writing attribute values.

The standard attribute accessors for reading attribute values are:

  • GetAttributeViInt32
  • GetAttributeViInt64
  • GetAttributeViReal64
  • GetAttributeViBoolean
  • GetAttributeViString

Correspondingly, the standard attribute accessors for writing attribute values are:

  • SetAttributeViInt32
  • SetAttributeViInt64
  • SetAttributeViReal64
  • SetAttributeViBoolean
  • SetAttributeViString

Each attribute accessor takes an attribute ID that uniquely identifies the attribute to access. These attribute IDs are #define'd constants listed in the AgM9036.h header file and documented in the "Attributes by Name" section of the help file.

Programming the Driver

For further information on how to program the AgM9036 using C/C++, see the M9036A User Guide on the M9036A Software and Product Information CD that came with your controller.

C/C++ Examples

When you installed the AgM9036, C/C++ example programs were installed. From the Windows start menu, select Agilent IVI Drivers/AgM9036/Examples for a list of all example programs.

C/C++ examples are located in the VS.NET/AnsiC directory:

Example | Description
CPP_M9036PulseTrigger | Demonstrates how to send a trigger pulse using software commands.
CPP_M9036RouteTrigger | Demonstrates how to set the various trigger routes.


Using .NET

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using .NET

There is no standard mechanism for accessing an IVI-C driver in .NET languages. Though the Microsoft .NET framework provides the [DllImport] attribute as a means to access any DLL function, its use is not standardized within IVI and it is very tedious and error prone in practice.

However, since the AgM9036 driver is built upon an IVI-COM core driver, the best way to access the driver from .NET languages is via the .NET interop assembly provided with the driver. The interop assemblies directly accesses the IVI-COM driver (bypassing the IVI-C wrapper layer) and provide a way to author interchangeable .NET applications as well as instrument-specific applications that utility specialized driver features.

For details on using the AgM9036 driver in .NET applications, see the IVI-COM topic Using C#.


Using MATLAB

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Using MATLAB®

Although MATLAB® provides support for accessing conventional Windows DLLs, such as IVI-C drivers, the AgM9036 driver includes a MATLAB wrapper that provides the most convenient way to access the AgM9036 driver. This wrapper directly accesses the underlying IVI-COM core driver, so the overhead of going through the AgM9036 driver's IVI-C wrapper layer is avoided.

For details on using the AgM9036 driver in MATLAB, please see the IVI-COM topic Using MATLAB.


Reference

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Reference

The topics in this section document each function and attribute exposed from the IVI-C driver. Functions and attributes are presented in a hierarchical function tree as well as in a flat list by name.

In This Section

Hierarchy

Presents a hierarchical view of all driver functions and attributes.

Functions and Attributes

Displays the IVI-C functions and attributes together in a flat list.

Functions By Name

Lists all IVI-C functions sorted alphabetically by name.

Attributes By Name

Lists all IVI-C attributes sorted alphabetically by name.

Errors and Warnings

Presents all driver errors and warnings ordered by error code.


AgM9036

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036
See Also

Tree Node: \AgM9036

Branches

Name
Attribute Accessors
Inherent IVI Attributes
Instrument Specific
Utility
Top

Functions

 | Name | Description
Function | Close | Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.
Function | Initialize | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Function | Initialize With Options | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Top

See Also

Reference

AgM9036


Attribute Accessors

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Attribute Accessors
See Also

Tree Node: \AgM9036\Attribute Accessors

Functions

 | Name | Description
Function | GetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | GetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | GetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | GetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | GetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | SetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | SetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | SetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | SetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | SetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Top

See Also

Reference

AgM9036


AgM9036_GetAttributeViBoolean Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetAttributeViBoolean Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\GetAttributeViBoolean
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_GetAttributeViInt32 Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetAttributeViInt32 Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\GetAttributeViInt32
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_GetAttributeViReal64 Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetAttributeViReal64 Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\GetAttributeViReal64
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetAttributeViReal64(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViReal64* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_GetAttributeViSession Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetAttributeViSession Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\GetAttributeViSession
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetAttributeViSession(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViSession* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_GetAttributeViString Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetAttributeViString Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\GetAttributeViString
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_SetAttributeViBoolean Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_SetAttributeViBoolean Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\SetAttributeViBoolean
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

The value to which to set the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_SetAttributeViInt32 Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_SetAttributeViInt32 Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\SetAttributeViInt32
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_SetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

The value to which to set the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_SetAttributeViReal64 Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_SetAttributeViReal64 Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\SetAttributeViReal64
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_SetAttributeViReal64(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViReal64 AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

The value to which to set the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_SetAttributeViSession Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_SetAttributeViSession Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\SetAttributeViSession
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_SetAttributeViSession(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViSession AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

The value to which to set the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_SetAttributeViString Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_SetAttributeViString Function
Attribute Accessors See Also

This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.

Function Tree Node: \AgM9036\Attribute Accessors\SetAttributeViString
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_SetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViConstString AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

If the attribute applies to a repeated capability, the user passes a physical or virtual repeated capability identifier. Otherwise, the user passes VI_NULL or an empty string. For attributes requiring nested repeated capabilities, enter the names separated by a colon as in: "Window1:Trace2".

AttributeID

The ID of the attribute. The valid values for this parameter can be found in the driver header file.

AttributeValue

The value to which to set the attribute.

Return Value

Success or failure code.

See Also

Reference

Attribute Accessors
AgM9036


AgM9036_close Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_close Function
AgM9036 See Also

Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.

Function Tree Node: \AgM9036\Close
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_close(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

See Also

Reference

AgM9036
AgM9036


Inherent IVI Attributes

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Inherent IVI Attributes
See Also

Tree Node: \AgM9036\Inherent IVI Attributes

Branches

Name
Advanced Session Information
Driver Capabilities
Driver Identification
Instrument Identification
User Options
Top

See Also

Reference

AgM9036


Advanced Session Information

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Advanced Session Information
See Also

Tree Node: \AgM9036\Inherent IVI Attributes\Advanced Session Information

Attributes

 | Name | Description
Attribute | Driver Setup | The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.
Attribute | I/O Resource Descriptor | The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.
Attribute | Logical Name | Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_DRIVER_SETUP Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_DRIVER_SETUP Attribute
Advanced Session Information See Also

The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Advanced Session Information\Driver Setup
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_DRIVER_SETUP 1050007

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_DRIVER_SETUP.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Advanced Session Information
AgM9036


AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR Attribute
Advanced Session Information See Also

The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Advanced Session Information\I/O Resource Descriptor
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR 1050304

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

Remarks

The string that this attribute returns contains a maximum of 256 characters including the NULL character.

See Also

Reference

Advanced Session Information
AgM9036


AGM9036_ATTR_LOGICAL_NAME Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_LOGICAL_NAME Attribute
Advanced Session Information See Also

Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Advanced Session Information\Logical Name
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_LOGICAL_NAME 1050305

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_LOGICAL_NAME.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

Remarks

The string that this attribute returns contains a maximum of 256 characters including the NULL character.

See Also

Reference

Advanced Session Information
AgM9036


Driver Capabilities

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Driver Capabilities
See Also

Tree Node: \AgM9036\Inherent IVI Attributes\Driver Capabilities

Attributes

 | Name | Description
Attribute | Class Group Capabilities | This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.
Attribute | Supported Instrument Models | A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_GROUP_CAPABILITIES Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_GROUP_CAPABILITIES Attribute
Driver Capabilities See Also

This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Capabilities\Class Group Capabilities
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_GROUP_CAPABILITIES 1050401

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_GROUP_CAPABILITIES.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Capabilities
AgM9036


AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS Attribute
Driver Capabilities See Also

A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Capabilities\Supported Instrument Models
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS 1050327

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Capabilities
AgM9036


Driver Identification

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Driver Identification
See Also

Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification

Attributes

 | Name | Description
Attribute | Specific Driver Class Spec Major Version | Returns the major version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | Specific Driver Class Spec Minor Version | Returns the minor version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | Specific Driver Description | Returns a brief description of the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | Specific Driver Prefix | Returns the case-sensitive prefix of the user-callable functions that the IVI-C specific driver exports. The string that this attribute returns contains a maximum of 32 bytes including the NUL byte.
Attribute | Specific Driver Revision | Returns version information about the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | Specific Driver Vendor | Returns the name of the vendor that supplies the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION Attribute
Driver Identification See Also

Returns the major version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Class Spec Major Version
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION 1050515

ViStatus AgM9036_GetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

See Also

Reference

Driver Identification
AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION Attribute
Driver Identification See Also

Returns the minor version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Class Spec Minor Version
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION 1050516

ViStatus AgM9036_GetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

See Also

Reference

Driver Identification
AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION Attribute
Driver Identification See Also

Returns a brief description of the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Description
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION 1050514

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Identification
AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX Attribute
Driver Identification See Also

Returns the case-sensitive prefix of the user-callable functions that the IVI-C specific driver exports. The string that this attribute returns contains a maximum of 32 bytes including the NUL byte.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Prefix
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX 1050302

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Identification
AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_REVISION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_REVISION Attribute
Driver Identification See Also

Returns version information about the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Revision
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_REVISION 1050551

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_REVISION.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Identification
AgM9036


AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR Attribute
Driver Identification See Also

Returns the name of the vendor that supplies the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Driver Identification\Specific Driver Vendor
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR 1050513

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Driver Identification
AgM9036


Instrument Identification

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Instrument Identification
See Also

Tree Node: \AgM9036\Inherent IVI Attributes\Instrument Identification

Attributes

 | Name | Description
Attribute | Instrument Firmware Revision | The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.
Attribute | Instrument Manufacturer | The name of the manufacturer reported by the physical instrument.
Attribute | Instrument Model | The model number or name reported by the physical instrument.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION Attribute
Instrument Identification See Also

The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Instrument Identification\Instrument Firmware Revision
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION 1050510

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Instrument Identification
AgM9036


AGM9036_ATTR_INSTRUMENT_MANUFACTURER Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_INSTRUMENT_MANUFACTURER Attribute
Instrument Identification See Also

The name of the manufacturer reported by the physical instrument.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Instrument Identification\Instrument Manufacturer
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_INSTRUMENT_MANUFACTURER 1050511

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_INSTRUMENT_MANUFACTURER.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Instrument Identification
AgM9036


AGM9036_ATTR_INSTRUMENT_MODEL Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_INSTRUMENT_MODEL Attribute
Instrument Identification See Also

The model number or name reported by the physical instrument.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\Instrument Identification\Instrument Model
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_INSTRUMENT_MODEL 1050512

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_INSTRUMENT_MODEL.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

Instrument Identification
AgM9036


User Options

[image]

AgM9036 IVI Driver Reference Agilent Technologies
User Options
See Also

Tree Node: \AgM9036\Inherent IVI Attributes\User Options

Attributes

 | Name | Description
Attribute | Cache | Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.
Attribute | Interchange Check | The only valid value for this boolean property is False.
Attribute | Query Instrument Status | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.
Attribute | Range Check | Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.
Attribute | Record Value Coercions | The only valid value for this boolean property is False.
Attribute | Simulate | If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_CACHE Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_CACHE Attribute
User Options See Also

Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Cache
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_CACHE 1050004

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_CACHE.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

Some attributes, such as the instrument Serial Number, which are deemed invariant may always be cached. The driver will generally never cache the Trigger Routing state, since that may change asynchronously. In the case of the AgM9036 Trigger driver, there are no attributes that are optionally cached under the control of this property. Therefore, this property has no effect.

See Also

Reference

User Options
AgM9036


AGM9036_ATTR_INTERCHANGE_CHECK Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_INTERCHANGE_CHECK Attribute
User Options See Also

The only valid value for this boolean property is False.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Interchange Check
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_INTERCHANGE_CHECK 1050021

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_INTERCHANGE_CHECK.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

This driver returns the IVI Value Not Supported error if an attempt is made to set this property to True.

See Also

Reference

User Options
AgM9036


AGM9036_ATTR_QUERY_INSTRUMENT_STATUS Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_QUERY_INSTRUMENT_STATUS Attribute
User Options See Also

This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Query Instrument Status
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_QUERY_INSTRUMENT_STATUS 1050003

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_QUERY_INSTRUMENT_STATUS.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

The M9036A always returns status immediately upon execution of each function. Therefore, this property has no effect on the behavior of the this driver.

See Also

Reference

User Options
AgM9036


AGM9036_ATTR_RANGE_CHECK Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_RANGE_CHECK Attribute
User Options See Also

Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Range Check
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_RANGE_CHECK 1050002

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_RANGE_CHECK.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

In the case of the AgM9036 Trigger driver, the driver will generally perform all range checking regardless of the value of this property. Therefore, this property has no effect.

See Also

Reference

User Options
AgM9036


AGM9036_ATTR_RECORD_COERCIONS Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_RECORD_COERCIONS Attribute
User Options See Also

The only valid value for this boolean property is False.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Record Value Coercions
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_RECORD_COERCIONS 1050006

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_RECORD_COERCIONS.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

This driver returns the IVI Value Not Supported error if an attempt is made to set this property to True.

See Also

Reference

User Options
AgM9036


AGM9036_ATTR_SIMULATE Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SIMULATE Attribute
User Options See Also

If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.

Attribute Tree Node: \AgM9036\Inherent IVI Attributes\User Options\Simulate
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SIMULATE 1050005

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SIMULATE.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

If True, the driver simulates instrument driver I/O operations. If False, the driver communicates directly with the instrument.

If simulation is enabled, the driver functions do not perform instrument I/O. For output parameters that represent data, the driver functions return simulated values.

The default value is False. However, the default may be overridden by specifying a value in the IVI configuration store or by specifying a value in the initilization options.

See Also

Reference

User Options
AgM9036


AgM9036_init Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_init Function
AgM9036 See Also

Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.

Function Tree Node: \AgM9036\Initialize
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_init(
    ViRsrc ResourceName,
    ViBoolean IdQuery,
    ViBoolean Reset,
    ViSession* Vi
);

Parameters

ResourceName

An IVI logical name or an instrument specific string that identifies the instrument. For the AgM9036 Trigger driver, this string must specify "CONTROLLER" or an empty string.

IdQuery

Specifies whether to verify the ID of the instrument.

Reset

Specifies whether to reset the instrument.

Vi

Unique identifier for an IVI session.

Return Value

Success or failure code.

See Also

Reference

AgM9036
AgM9036


AgM9036_InitWithOptions Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_InitWithOptions Function
AgM9036 See Also

Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.

Function Tree Node: \AgM9036\Initialize With Options
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_InitWithOptions(
    ViRsrc ResourceName,
    ViBoolean IdQuery,
    ViBoolean Reset,
    ViConstString OptionsString,
    ViSession* Vi
);

Parameters

ResourceName

An IVI logical name or an instrument specific string that identifies the instrument. For the AgM9036 Trigger driver, this string must specify "CONTROLLER" or an empty string.

IdQuery

Specifies whether to verify the ID of the instrument.

Reset

Specifies whether to reset the instrument.

OptionsString

The user can use the OptionsString parameter to specify the initial values of certain IVI inherent attributes for the session. The format of an assignment in the OptionsString parameteris "Name=Value", where Name is one of: RangeCheck, QuerytInstrStatus, Cache, Simulate, RecordCoercions, InterchangeCheck,or DriverSetup. Value is either true or false except for DriverSetup. If the Options String parameter contains an assignment for the Driver Setup attribute, the Initialize function assumes that everything following "DriverSetup=" is part of the assignment.

Vi

Unique identifier for an IVI session.

Return Value

Success or failure code.

See Also

Reference

AgM9036
AgM9036


Instrument Specific

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Instrument Specific
See Also

Tree Node: \AgM9036\Instrument Specific

Branches

Name
System
TriggerRouting
Top

See Also

Reference

AgM9036


System

[image]

AgM9036 IVI Driver Reference Agilent Technologies
System
See Also

Tree Node: \AgM9036\Instrument Specific\System

Attributes

 | Name | Description
Attribute | Serial Number | The serial number of the embedded controller.
Attribute | Trace Enabled | If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.
Top

See Also

Reference

AgM9036


AGM9036_ATTR_SERIAL_NUMBER Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_SERIAL_NUMBER Attribute
System See Also

The serial number of the embedded controller.

Attribute Tree Node: \AgM9036\Instrument Specific\System\Serial Number
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_SERIAL_NUMBER 1150001

ViStatus AgM9036_GetAttributeViString(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32 AttributeValueBufferSize,
    ViChar[] AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_SERIAL_NUMBER.

AttributeValueBufferSize

The number of bytes in the ViChar array that the user specifies for the AttributeValue parameter.

AttributeValue

The buffer in which the function returns the current value of the attribute. Can be VI_NULL if AttributeValueBufferSize is 0.

See Also

Reference

System
AgM9036


AGM9036_ATTR_TRACE_ENABLED Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_TRACE_ENABLED Attribute
System See Also

If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.

Attribute Tree Node: \AgM9036\Instrument Specific\System\Trace Enabled
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_TRACE_ENABLED 1150002

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_TRACE_ENABLED.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

In addition to being able to enable tracing by changing this property, you may also enable tracing with additional options when initializing the driver.

The following tracing options can be specified as part of the OptionString (DriverSetup property) during initialization.

Option Name Description Default

Trace

If true, output trace log of all driver calls to an XML file as specified by the TraceName option. The log file may be viewed in your web browser. Beginning with Agilent IO Libraries Suite 16.0, driver trace messages may also be viewed with the IO Monitor utility. See IO Monitor help for details.

false

TraceName

If specified, sets the path and file name for the XML log file output when option Trace=true. It is not necessary to include the .xml extension with the name. Example: 'DriverSetup= Trace=true, TraceName=C:\Temp\TraceOut'.

If TraceName is not specified, tracing generates a unique XML trace file name in the application directory based on the date and time.

""

TraceArray

If true, array parameter data is output to the trace log.

false

TraceArraySizeMax

Specifies the maximum number of elements to trace for array parameters. Requires option 'TraceArray=true'.

10

TraceSizeMax

Specifies the maximum size of the trace log file in bytes. Once the file reaches this size, tracing will be turned off automatically by the driver.

1000000

TraceSaveInterval

Specifies how often the driver should save trace data to the trace log file. The value is specified in minutes.

1

See Also

Reference

System
AgM9036


TriggerRouting

[image]

AgM9036 IVI Driver Reference Agilent Technologies
TriggerRouting
See Also

Tree Node: \AgM9036\Instrument Specific\TriggerRouting

Functions

 | Name | Description
Function | Trigger Routing Get Enabled | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Function | Trigger Routing Get Pxi Trig | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | Trigger Routing Get Route | This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.
Function | Trigger Routing Get Route Configuration | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | Trigger Routing Get Software Route Trigger State | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Function | Trigger Routing Reset Route | This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Function | Trigger Routing Set Route | This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.
Function | Trigger Routing Set Software Route Trigger State | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Top

Attributes

 | Name | Description
Attribute | Trigger Routing Enabled | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Attribute | Trigger Routing Pxi Trig | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | Trigger Routing Route Configuration | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | Trigger Routing Software Route Trigger State | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Top

See Also

Reference

AgM9036


AGM9036_ATTR_TRIGGERROUTING_ENABLED Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_TRIGGERROUTING_ENABLED Attribute
TriggerRouting See Also

-- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.

Attribute Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Enabled
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_TRIGGERROUTING_ENABLED 1150003

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_TRIGGERROUTING_ENABLED.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingGetEnabled Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingGetEnabled Function
TriggerRouting See Also

-- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Get Enabled
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingGetEnabled(
    ViSession Vi,
    ViBoolean* Enabled
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Enabled

If the trigger routing subsystem of the embedded system controller is enabled, this returns True. If the trigger routing subsystem of the embedded system controller is disabled, this returns False. The SetTriggerRoute method configures and enables this subsystem. The ResetTriggerRoute and Reset methods disable this subsystem.

Return Value

Success or failure code.

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingGetPxiTrig Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingGetPxiTrig Function
TriggerRouting See Also

-- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Get Pxi Trig
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingGetPxiTrig(
    ViSession Vi,
    ViInt32* PxiTrig
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

PxiTrig

-- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Return Value

Success or failure code.

Defined Values For Parameter PxiTrig

Name | Description
AGM9036_VAL_PXI_TRIG0 | This selects the PXI_TRIG0 line on the backplane.
AGM9036_VAL_PXI_TRIG1 | This selects the PXI_TRIG1 line on the backplane.
AGM9036_VAL_PXI_TRIG2 | This selects the PXI_TRIG2 line on the backplane.
AGM9036_VAL_PXI_TRIG3 | This selects the PXI_TRIG3 line on the backplane.
AGM9036_VAL_PXI_TRIG4 | This selects the PXI_TRIG4 line on the backplane.
AGM9036_VAL_PXI_TRIG5 | This selects the PXI_TRIG5 line on the backplane.
AGM9036_VAL_PXI_TRIG6 | This selects the PXI_TRIG6 line on the backplane.
AGM9036_VAL_PXI_TRIG7 | This selects the PXI_TRIG7 line on the backplane.
AGM9036_VAL_PXI_TRIG_NONE | This selection indicates that no PXI_TRIG backplane line is connected to the trigger routing circuitry.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingGetRoute Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingGetRoute Function
TriggerRouting See Also

This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Get Route
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingGetRoute(
    ViSession Vi,
    ViInt32* RouteConfiguration,
    ViInt32* PxiTrig
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RouteConfiguration

Returns the current arrangement of interconnects between software-generated trigger, external (front panel) connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

PxiTrig

Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Return Value

Success or failure code.

Remarks

Following Reset or ResetRoute, this query returns:

  • RouteConfiguration == AgM9036TriggerRouteNone
  • PxiTrig == AgM9036PXI_TRIGNone

Defined Values For Parameter RouteConfiguration

Name | Description
AGM9036_VAL_TRIGGER_ROUTE_EXTERNAL_TO_TRIGGER_BUS | Drives the trigger signal from the external connector on the front-panel of the embedded system controller to the specified PXI trigger bus backplane line. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_TRIGGER_BUS_TO_EXTERNAL | Drives the trigger signal from the specified PXI trigger bus backplane line to the external connector on the front-panel of the embedded system controller. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS | Drives the current software trigger signal to the specified PXI trigger bus backplane line. In this state the external trigger connection is in a high-impedance state.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS_AND_EXTERNAL | Drives the current software trigger signal to the specified PXI trigger bus backplane line and also drive the current software trigger signal to the external connector on the front-panel of the embedded system controller.
AGM9036_VAL_TRIGGER_ROUTE_NONE | Indicates the trigger routing function of the embedded system controller is in a reset (no connection) state. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Top

Defined Values For Parameter PxiTrig

Name | Description
AGM9036_VAL_PXI_TRIG0 | This selects the PXI_TRIG0 line on the backplane.
AGM9036_VAL_PXI_TRIG1 | This selects the PXI_TRIG1 line on the backplane.
AGM9036_VAL_PXI_TRIG2 | This selects the PXI_TRIG2 line on the backplane.
AGM9036_VAL_PXI_TRIG3 | This selects the PXI_TRIG3 line on the backplane.
AGM9036_VAL_PXI_TRIG4 | This selects the PXI_TRIG4 line on the backplane.
AGM9036_VAL_PXI_TRIG5 | This selects the PXI_TRIG5 line on the backplane.
AGM9036_VAL_PXI_TRIG6 | This selects the PXI_TRIG6 line on the backplane.
AGM9036_VAL_PXI_TRIG7 | This selects the PXI_TRIG7 line on the backplane.
AGM9036_VAL_PXI_TRIG_NONE | This selection indicates that no PXI_TRIG backplane line is connected to the trigger routing circuitry.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingGetRouteConfiguration Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingGetRouteConfiguration Function
TriggerRouting See Also

-- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Get Route Configuration
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingGetRouteConfiguration(
    ViSession Vi,
    ViInt32* RouteConfiguration
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RouteConfiguration

-- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Return Value

Success or failure code.

Defined Values For Parameter RouteConfiguration

Name | Description
AGM9036_VAL_TRIGGER_ROUTE_EXTERNAL_TO_TRIGGER_BUS | Drives the trigger signal from the external connector on the front-panel of the embedded system controller to the specified PXI trigger bus backplane line. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_TRIGGER_BUS_TO_EXTERNAL | Drives the trigger signal from the specified PXI trigger bus backplane line to the external connector on the front-panel of the embedded system controller. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS | Drives the current software trigger signal to the specified PXI trigger bus backplane line. In this state the external trigger connection is in a high-impedance state.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS_AND_EXTERNAL | Drives the current software trigger signal to the specified PXI trigger bus backplane line and also drive the current software trigger signal to the external connector on the front-panel of the embedded system controller.
AGM9036_VAL_TRIGGER_ROUTE_NONE | Indicates the trigger routing function of the embedded system controller is in a reset (no connection) state. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingGetSoftwareRouteTriggerState Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingGetSoftwareRouteTriggerState Function
TriggerRouting See Also

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Get Software Route Trigger State
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingGetSoftwareRouteTriggerState(
    ViSession Vi,
    ViBoolean* SoftwareRouteTriggerState
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

SoftwareRouteTriggerState

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Return Value

Success or failure code.

Remarks

Note that True indicates a high voltage (3.3 volts), while False indicates a low voltage (0 volts).

See Also

Reference

TriggerRouting
AgM9036


AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG Attribute
TriggerRouting See Also

-- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Attribute Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Pxi Trig
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG 1150007

ViStatus AgM9036_GetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Remarks

Following Reset or ResetRoute, this property returns False.

Defined Values

Name | Description
AGM9036_VAL_PXI_TRIG0 | This selects the PXI_TRIG0 line on the backplane.
AGM9036_VAL_PXI_TRIG1 | This selects the PXI_TRIG1 line on the backplane.
AGM9036_VAL_PXI_TRIG2 | This selects the PXI_TRIG2 line on the backplane.
AGM9036_VAL_PXI_TRIG3 | This selects the PXI_TRIG3 line on the backplane.
AGM9036_VAL_PXI_TRIG4 | This selects the PXI_TRIG4 line on the backplane.
AGM9036_VAL_PXI_TRIG5 | This selects the PXI_TRIG5 line on the backplane.
AGM9036_VAL_PXI_TRIG6 | This selects the PXI_TRIG6 line on the backplane.
AGM9036_VAL_PXI_TRIG7 | This selects the PXI_TRIG7 line on the backplane.
AGM9036_VAL_PXI_TRIG_NONE | This selection indicates that no PXI_TRIG backplane line is connected to the trigger routing circuitry.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingResetRoute Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingResetRoute Function
TriggerRouting See Also

This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Reset Route
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingResetRoute(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

This function disables the trigger routing subsystem by resetting the TriggerRoute to None and resetting the backplane PXI_TRIG line to None.

Note that the trigger routing subsystem cannot be enabled or disabled independently of altering the trigger routing path and the selected backplane PXI_TRIG line.

Note that this function does not alter the state of the SoftwareRouteTriggerState property.

See Also

Reference

TriggerRouting
AgM9036


AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION Attribute
TriggerRouting See Also

-- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.

Attribute Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Route Configuration
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION 1150006

ViStatus AgM9036_GetAttributeViInt32(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViInt32* AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION.

AttributeValue

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

Defined Values

Name | Description
AGM9036_VAL_TRIGGER_ROUTE_EXTERNAL_TO_TRIGGER_BUS | Drives the trigger signal from the external connector on the front-panel of the embedded system controller to the specified PXI trigger bus backplane line. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_TRIGGER_BUS_TO_EXTERNAL | Drives the trigger signal from the specified PXI trigger bus backplane line to the external connector on the front-panel of the embedded system controller. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS | Drives the current software trigger signal to the specified PXI trigger bus backplane line. In this state the external trigger connection is in a high-impedance state.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS_AND_EXTERNAL | Drives the current software trigger signal to the specified PXI trigger bus backplane line and also drive the current software trigger signal to the external connector on the front-panel of the embedded system controller.
AGM9036_VAL_TRIGGER_ROUTE_NONE | Indicates the trigger routing function of the embedded system controller is in a reset (no connection) state. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingSetRoute Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingSetRoute Function
TriggerRouting See Also

This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Set Route
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingSetRoute(
    ViSession Vi,
    ViInt32 RouteConfiguration,
    ViInt32 PxiTrig
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RouteConfiguration

Specifies the arrangement of interconnects between software-generated trigger, external (front panel) connection, and backplane connection.

PxiTrig

Specifies the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) to be connected to the embedded system controller.

Return Value

Success or failure code.

Remarks

This function is normally used to enable the trigger routing subsystem of the embedded system controller. A valid RouteConfiguration parameter (other than the None enumeration) must be specified, and a valid PxiTrig parameter (other than the None enumeration) must be specified.

However, if the None enumeration is specified for the RouteConfiguration parameter and the None enumeration is specified for the PxiTrig parameter, then this function is equivalent to the ResetRoute function, in which case this function effectively disables the trigger routing subsystem.

If the None enumeration is specified for one of the parameters, but not for the other parameter, then an Invalid Value error will be raised.

The ResetRoute method resets this method's RouteConfiguration and PxiTrig parameters to their respective None enumerations, which effectively disables the triggering subsystem.

Note that the trigger routing subsystem cannot be enabled or disabled independently of altering the trigger routing path and the selected backplane PXI_TRIG line.

Defined Values For Parameter RouteConfiguration

Name | Description
AGM9036_VAL_TRIGGER_ROUTE_EXTERNAL_TO_TRIGGER_BUS | Drives the trigger signal from the external connector on the front-panel of the embedded system controller to the specified PXI trigger bus backplane line. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_TRIGGER_BUS_TO_EXTERNAL | Drives the trigger signal from the specified PXI trigger bus backplane line to the external connector on the front-panel of the embedded system controller. In this state the SoftwareTrigger property has no effect.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS | Drives the current software trigger signal to the specified PXI trigger bus backplane line. In this state the external trigger connection is in a high-impedance state.
AGM9036_VAL_TRIGGER_ROUTE_SOFTWARE_TO_TRIGGER_BUS_AND_EXTERNAL | Drives the current software trigger signal to the specified PXI trigger bus backplane line and also drive the current software trigger signal to the external connector on the front-panel of the embedded system controller.
AGM9036_VAL_TRIGGER_ROUTE_NONE | Indicates the trigger routing function of the embedded system controller is in a reset (no connection) state. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Top

Defined Values For Parameter PxiTrig

Name | Description
AGM9036_VAL_PXI_TRIG0 | This selects the PXI_TRIG0 line on the backplane.
AGM9036_VAL_PXI_TRIG1 | This selects the PXI_TRIG1 line on the backplane.
AGM9036_VAL_PXI_TRIG2 | This selects the PXI_TRIG2 line on the backplane.
AGM9036_VAL_PXI_TRIG3 | This selects the PXI_TRIG3 line on the backplane.
AGM9036_VAL_PXI_TRIG4 | This selects the PXI_TRIG4 line on the backplane.
AGM9036_VAL_PXI_TRIG5 | This selects the PXI_TRIG5 line on the backplane.
AGM9036_VAL_PXI_TRIG6 | This selects the PXI_TRIG6 line on the backplane.
AGM9036_VAL_PXI_TRIG7 | This selects the PXI_TRIG7 line on the backplane.
AGM9036_VAL_PXI_TRIG_NONE | This selection indicates that no PXI_TRIG backplane line is connected to the trigger routing circuitry.
Top

See Also

Reference

TriggerRouting
AgM9036


AgM9036_TriggerRoutingSetSoftwareRouteTriggerState Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_TriggerRoutingSetSoftwareRouteTriggerState Function
TriggerRouting See Also

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Function Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Set Software Route Trigger State
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_TriggerRoutingSetSoftwareRouteTriggerState(
    ViSession Vi,
    ViBoolean SoftwareRouteTriggerState
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

SoftwareRouteTriggerState

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Return Value

Success or failure code.

Remarks

Note that True specifies a high voltage (3.3 volts), while False specifies a low voltage (0 volts).

This is a level-sensitive control. You may generate a pulse by setting this property to one state, waiting for the length of pulse desired, and then setting this property to the opposite state.

Note that the ResetRoute method does not alter the state of this property. However, the Reset method of this driver resets this property to the power-on default of "False".

See Also

Reference

TriggerRouting
AgM9036


AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE Attribute

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE Attribute
TriggerRouting See Also

This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".

Attribute Tree Node: \AgM9036\Instrument Specific\TriggerRouting\Trigger Routing Software Route Trigger State
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
#define AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE 1150005

ViStatus AgM9036_GetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean* AttributeValue
);

ViStatus AgM9036_SetAttributeViBoolean(
    ViSession Vi,
    ViConstString RepCapIdentifier,
    ViAttr AttributeID,
    ViBoolean AttributeValue
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

RepCapIdentifier

Must be VI_NULL or an empty string. This attribute is not defined on a repeated capability.

AttributeID

Must be AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE.

AttributeValue (GetAttribute)

Returns the current value of the attribute. The user must specify the address of a variable that has the same data type as the attribute.

AttributeValue (SetAttribute)

The value to which to set the attribute.

Remarks

Note that True specifies a high voltage (3.3 volts), while False specifies a low voltage (0 volts).

This is a level-sensitive control. You may generate a pulse by setting this property to one state, waiting for the length of pulse desired, and then setting this property to the opposite state.

Note that the ResetRoute method does not alter the state of this property. However, the Reset method of this driver resets this property to the power-on default of "False".

See Also

Reference

TriggerRouting
AgM9036


Utility

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Utility
See Also

Tree Node: \AgM9036\Utility

Functions

 | Name | Description
Function | Clear Error | This function clears the error code and error description for the current execution thread and for the IVI session. If the user specifies a valid IVI session for the Vi parameter, this function clears the error information for the session. If the user passes VI_NULL for the Vi parameter, this function clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error.
Function | Clear Interchange Warnings | --NOT SUPPORTED--
Function | Disable | Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.
Function | Error Message | Translates the error return value from an IVI driver function to a user-readable string. The user should pass a buffer with at least 256 bytes for the ErrorMessage parameter.
Function | Error Query | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.
Function | Get Error | This function retrieves and then clears the IVI error information for the session or the current execution thread. If the user specifies a valid IVI session for the Vi parameter, Get Error retrieves and then clears the error information for the session. If the user passes VI_NULL for the Vi parameter, Get Error retrieves and then clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error. Normally, the error information describes the first error that occurred since the user last called the Get Error or Clear Error function.
Function | Get Next Coercion Record | --NOT SUPPORTED--
Function | Get Next Interchange Warning | --NOT SUPPORTED--
Function | Invalidate All Attributes | If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.
Function | Lock Session | Obtains a multithread lock on the driver after waiting until all other execution threads have released their locks on the controller session.
Function | Reset | Places the instrument in a known state as described below.
Function | Reset Interchange Check | --NOT SUPPORTED--
Function | Reset With Defaults | Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.
Function | Revision Query | Retrieves revision information from the instrument.
Function | Self Test | The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.
Function | Unlock Session | Releases a previously obtained mutlithread lock.
Top

See Also

Reference

AgM9036


AgM9036_ClearError Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_ClearError Function
Utility See Also

This function clears the error code and error description for the current execution thread and for the IVI session. If the user specifies a valid IVI session for the Vi parameter, this function clears the error information for the session. If the user passes VI_NULL for the Vi parameter, this function clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error.

Function Tree Node: \AgM9036\Utility\Clear Error
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_ClearError(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_ClearInterchangeWarnings Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_ClearInterchangeWarnings Function
Utility See Also

--NOT SUPPORTED--

Function Tree Node: \AgM9036\Utility\Clear Interchange Warnings
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_ClearInterchangeWarnings(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

Utility
AgM9036


AgM9036_Disable Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_Disable Function
Utility See Also

Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.

Function Tree Node: \AgM9036\Utility\Disable
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_Disable(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

The nature of this driver, and its control over circuitry in an embedded controller, is such that, except when actively performing a command, the instrument is always in a state which has minimal effect on the driver's host. Therefore, this function performs no action, but always returns success.

See Also

Reference

Utility
AgM9036


AgM9036_error_message Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_error_message Function
Utility See Also

Translates the error return value from an IVI driver function to a user-readable string. The user should pass a buffer with at least 256 bytes for the ErrorMessage parameter.

Function Tree Node: \AgM9036\Utility\Error Message
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_error_message(
    ViSession Vi,
    ViStatus ErrorCode,
    ViChar[] ErrorMessage
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

ErrorCode

Instrument driver status code.

ErrorMessage

Instrument driver error message.

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_error_query Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_error_query Function
Utility See Also

This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.

Function Tree Node: \AgM9036\Utility\Error Query
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_error_query(
    ViSession Vi,
    ViInt32* ErrorCode,
    ViChar[] ErrorMessage
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

ErrorCode

Instrument error code

ErrorMessage

Instrument error message

Return Value

Success or failure code.

Remarks

The M9036A controller does not have any functions that report their status asynchronously. The result of this method will be consistent with an empty error queue. Specifically, the returned ErrorCode will be zero, and the ErrorMessage will indicate no error.

In all development environments, the caller will receive a successful return code.

In some present or future development environments, the successful return code may indicate the IVI Error Query Not Supported completion code, which is a warning, but not an error.

See Also

Reference

Utility
AgM9036


AgM9036_GetError Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetError Function
Utility See Also

This function retrieves and then clears the IVI error information for the session or the current execution thread. If the user specifies a valid IVI session for the Vi parameter, Get Error retrieves and then clears the error information for the session. If the user passes VI_NULL for the Vi parameter, Get Error retrieves and then clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error. Normally, the error information describes the first error that occurred since the user last called the Get Error or Clear Error function.

Function Tree Node: \AgM9036\Utility\Get Error
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetError(
    ViSession Vi,
    ViStatus* ErrorCode,
    ViInt32 ErrorDescriptionBufferSize,
    ViChar[] ErrorDescription
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

ErrorCode

Returns the error code. Zero indicates that no error occurred. A positive value indicates a warning. A negative value indicates an error. The user can pass VI_NULL if the user does not want to retrieve this value.

ErrorDescriptionBufferSize

The number of bytes in the ViChar array that the user specifies for the ErrorDescription parameter.

ErrorDescription

Buffer into which the function copies the full formatted error string. The string describes the error code and any extra information regarding the error or warning condition. The buffer shall contain at least as many bytes as the user specifies in the ErrorDescriptionBufferSize parameter. The user can pass VI_NULL if the ErrorDescriptionBufferSize parameter is zero.

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_GetNextCoercionRecord Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetNextCoercionRecord Function
Utility See Also

--NOT SUPPORTED--

Function Tree Node: \AgM9036\Utility\Get Next Coercion Record
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetNextCoercionRecord(
    ViSession Vi,
    ViInt32 CoercionRecordBufferSize,
    ViChar[] CoercionRecord
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

CoercionRecordBufferSize

CoercionRecord

Return Value

Success or failure code.

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

Utility
AgM9036


AgM9036_GetNextInterchangeWarning Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_GetNextInterchangeWarning Function
Utility See Also

--NOT SUPPORTED--

Function Tree Node: \AgM9036\Utility\Get Next Interchange Warning
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_GetNextInterchangeWarning(
    ViSession Vi,
    ViInt32 InterchangeWarningBufferSize,
    ViChar[] InterchangeWarning
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

InterchangeWarningBufferSize

InterchangeWarning

Return Value

Success or failure code.

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

Utility
AgM9036


AgM9036_InvalidateAllAttributes Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_InvalidateAllAttributes Function
Utility See Also

If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.

Function Tree Node: \AgM9036\Utility\Invalidate All Attributes
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_InvalidateAllAttributes(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

In the case of the AgM9036 Trigger driver, there are no attributes that are optionally cached under the control of the Cache property. Therefore, this method performs no operation and returns Success.

See Also

Reference

Utility
AgM9036


AgM9036_LockSession Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_LockSession Function
Utility See Also

Obtains a multithread lock on the driver after waiting until all other execution threads have released their locks on the controller session.

Function Tree Node: \AgM9036\Utility\Lock Session
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_LockSession(
    ViSession Vi,
    ViBoolean* CallerHasLock
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

CallerHasLock

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_reset Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_reset Function
Utility See Also

Places the instrument in a known state as described below.

Function Tree Node: \AgM9036\Utility\Reset
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_reset(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

This function disables the trigger routing subsystem by resetting the TriggerRoute to None and resetting the backplane PXI_TRIG line to None.

This function also sets the state of the SoftwareRouteTriggerState property to False (a low voltage).

See Also

Reference

Utility
AgM9036


AgM9036_ResetInterchangeCheck Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_ResetInterchangeCheck Function
Utility See Also

--NOT SUPPORTED--

Function Tree Node: \AgM9036\Utility\Reset Interchange Check
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_ResetInterchangeCheck(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

Remarks

This driver returns the IVI Function Not Supported error when this function is called.

See Also

Reference

Utility
AgM9036


AgM9036_ResetWithDefaults Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_ResetWithDefaults Function
Utility See Also

Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.

Function Tree Node: \AgM9036\Utility\Reset With Defaults
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_ResetWithDefaults(
    ViSession Vi
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_revision_query Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_revision_query Function
Utility See Also

Retrieves revision information from the instrument.

Function Tree Node: \AgM9036\Utility\Revision Query
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_revision_query(
    ViSession Vi,
    ViChar[] DriverRev,
    ViChar[] InstrRev
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

DriverRev

Returns the revision of the IVI specific driver, which is the value held in the Specific Driver Revision attribute. Refer to the Specific Driver Revision attribute for more information.

InstrRev

Returns the firmware revision of the instrument, which is the value held in the Instrument Firmware Revision attribute. Refer to the Instrument Firmware Revision attribute for more information.

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


AgM9036_self_test Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_self_test Function
Utility See Also

The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.

Function Tree Node: \AgM9036\Utility\Self Test
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_self_test(
    ViSession Vi,
    ViInt16* TestResult,
    ViChar[] TestMessage
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

TestResult

The numeric result from the self test operation. 0 = no error (test passed)

TestMessage

The self test status message

Return Value

Success or failure code.

Remarks

The M9036A controller does not perform a self test. The result of this method will be consistent with a successful self-test. Specifically, the returned TestResult will be zero, and the TestMessage will indicate "Self test passed."

In all development environments, the caller will receive a successful return code.

In some present or future development environments, the successful return code may indicate the IVI Self Test Not Supported completion code, which is a warning, but not an error.

To cover future eventualities, the user should pass a buffer with at least 256 bytes for the TestMessage parameter.

See Also

Reference

Utility
AgM9036


AgM9036_UnlockSession Function

[image]

AgM9036 IVI Driver Reference Agilent Technologies
AgM9036_UnlockSession Function
Utility See Also

Releases a previously obtained mutlithread lock.

Function Tree Node: \AgM9036\Utility\Unlock Session
Declaration: AgM9036.h
Implementation: AgM9036.dll

Syntax

Visual C++
ViStatus AgM9036_UnlockSession(
    ViSession Vi,
    ViBoolean* CallerHasLock
);

Parameters

Vi

The ViSession handle that you obtain from the IviDriver_init or IviDriver_InitWithOptions function. The handle identifies a particular instrument session.

CallerHasLock

Return Value

Success or failure code.

See Also

Reference

Utility
AgM9036


Functions and Attributes

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Functions and Attributes

Functions

 | Name | Description
Function | AgM9036_ClearError | This function clears the error code and error description for the current execution thread and for the IVI session. If the user specifies a valid IVI session for the Vi parameter, this function clears the error information for the session. If the user passes VI_NULL for the Vi parameter, this function clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error.
Function | AgM9036_ClearInterchangeWarnings | --NOT SUPPORTED--
Function | AgM9036_close | Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.
Function | AgM9036_Disable | Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.
Function | AgM9036_error_message | Translates the error return value from an IVI driver function to a user-readable string. The user should pass a buffer with at least 256 bytes for the ErrorMessage parameter.
Function | AgM9036_error_query | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.
Function | AgM9036_GetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetError | This function retrieves and then clears the IVI error information for the session or the current execution thread. If the user specifies a valid IVI session for the Vi parameter, Get Error retrieves and then clears the error information for the session. If the user passes VI_NULL for the Vi parameter, Get Error retrieves and then clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error. Normally, the error information describes the first error that occurred since the user last called the Get Error or Clear Error function.
Function | AgM9036_GetNextCoercionRecord | --NOT SUPPORTED--
Function | AgM9036_GetNextInterchangeWarning | --NOT SUPPORTED--
Function | AgM9036_init | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Function | AgM9036_InitWithOptions | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Function | AgM9036_InvalidateAllAttributes | If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.
Function | AgM9036_LockSession | Obtains a multithread lock on the driver after waiting until all other execution threads have released their locks on the controller session.
Function | AgM9036_reset | Places the instrument in a known state as described below.
Function | AgM9036_ResetInterchangeCheck | --NOT SUPPORTED--
Function | AgM9036_ResetWithDefaults | Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.
Function | AgM9036_revision_query | Retrieves revision information from the instrument.
Function | AgM9036_self_test | The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.
Function | AgM9036_SetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_TriggerRoutingGetEnabled | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Function | AgM9036_TriggerRoutingGetPxiTrig | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | AgM9036_TriggerRoutingGetRoute | This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.
Function | AgM9036_TriggerRoutingGetRouteConfiguration | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | AgM9036_TriggerRoutingGetSoftwareRouteTriggerState | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Function | AgM9036_TriggerRoutingResetRoute | This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Function | AgM9036_TriggerRoutingSetRoute | This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.
Function | AgM9036_TriggerRoutingSetSoftwareRouteTriggerState | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Function | AgM9036_UnlockSession | Releases a previously obtained mutlithread lock.
Top

Attributes

 | Name | Description
Attribute | AGM9036_ATTR_CACHE | Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.
Attribute | AGM9036_ATTR_DRIVER_SETUP | The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.
Attribute | AGM9036_ATTR_GROUP_CAPABILITIES | This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.
Attribute | AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION | The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.
Attribute | AGM9036_ATTR_INSTRUMENT_MANUFACTURER | The name of the manufacturer reported by the physical instrument.
Attribute | AGM9036_ATTR_INSTRUMENT_MODEL | The model number or name reported by the physical instrument.
Attribute | AGM9036_ATTR_INTERCHANGE_CHECK | The only valid value for this boolean property is False.
Attribute | AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR | The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.
Attribute | AGM9036_ATTR_LOGICAL_NAME | Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.
Attribute | AGM9036_ATTR_QUERY_INSTRUMENT_STATUS | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.
Attribute | AGM9036_ATTR_RANGE_CHECK | Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.
Attribute | AGM9036_ATTR_RECORD_COERCIONS | The only valid value for this boolean property is False.
Attribute | AGM9036_ATTR_SERIAL_NUMBER | The serial number of the embedded controller.
Attribute | AGM9036_ATTR_SIMULATE | If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION | Returns the major version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION | Returns the minor version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION | Returns a brief description of the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX | Returns the case-sensitive prefix of the user-callable functions that the IVI-C specific driver exports. The string that this attribute returns contains a maximum of 32 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_REVISION | Returns version information about the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR | Returns the name of the vendor that supplies the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS | A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.
Attribute | AGM9036_ATTR_TRACE_ENABLED | If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.
Attribute | AGM9036_ATTR_TRIGGERROUTING_ENABLED | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Attribute | AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Top


Functions and Attributes

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Functions

Functions

 | Name | Description
Function | AgM9036_ClearError | This function clears the error code and error description for the current execution thread and for the IVI session. If the user specifies a valid IVI session for the Vi parameter, this function clears the error information for the session. If the user passes VI_NULL for the Vi parameter, this function clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error.
Function | AgM9036_ClearInterchangeWarnings | --NOT SUPPORTED--
Function | AgM9036_close | Closes the I/O session to the instrument. Driver methods and properties that access the instrument are not accessible after Close is called.
Function | AgM9036_Disable | Quickly places the instrument in a state where it has no, or minimal, effect on the external system to which it is connected. This state is not necessarily a known state.
Function | AgM9036_error_message | Translates the error return value from an IVI driver function to a user-readable string. The user should pass a buffer with at least 256 bytes for the ErrorMessage parameter.
Function | AgM9036_error_query | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A returns status immediately upon execution of each function. This function performs no action, and always returns success. See Remarks for details.
Function | AgM9036_GetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_GetError | This function retrieves and then clears the IVI error information for the session or the current execution thread. If the user specifies a valid IVI session for the Vi parameter, Get Error retrieves and then clears the error information for the session. If the user passes VI_NULL for the Vi parameter, Get Error retrieves and then clears the error information for the current execution thread. If the Vi parameter is an invalid session, the function does nothing and returns an error. Normally, the error information describes the first error that occurred since the user last called the Get Error or Clear Error function.
Function | AgM9036_GetNextCoercionRecord | --NOT SUPPORTED--
Function | AgM9036_GetNextInterchangeWarning | --NOT SUPPORTED--
Function | AgM9036_init | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Function | AgM9036_InitWithOptions | Opens the I/O session to the instrument. Driver methods and properties that access the instrument are only accessible after Initialize is called. Initialize optionally performs a Reset and queries the instrument to validate the instrument model.
Function | AgM9036_InvalidateAllAttributes | If state caching has been enabled using the Cache property, this method invalidates any attributes that have been cached. If state caching has not been enabled, no operation is performed and Success is returned.
Function | AgM9036_LockSession | Obtains a multithread lock on the driver after waiting until all other execution threads have released their locks on the controller session.
Function | AgM9036_reset | Places the instrument in a known state as described below.
Function | AgM9036_ResetInterchangeCheck | --NOT SUPPORTED--
Function | AgM9036_ResetWithDefaults | Does the equivalent of Reset and then configures the driver to option string settings used when Initialize was last executed.
Function | AgM9036_revision_query | Retrieves revision information from the instrument.
Function | AgM9036_self_test | The self_test function is required by the IVI Inherent Capabilities Specification independent of whether an instrument can actually perform self test. Because this driver does not perform self test, the pre-defined values listed in Remarks are returned.
Function | AgM9036_SetAttributeViBoolean | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViInt32 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViReal64 | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViSession | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_SetAttributeViString | This routine is used to access low-level settings of the instrument. See the attributeID parameter for a link to all attributes of the instrument.
Function | AgM9036_TriggerRoutingGetEnabled | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Function | AgM9036_TriggerRoutingGetPxiTrig | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | AgM9036_TriggerRoutingGetRoute | This function obtains the current trigger-routing status of the embedded system controller. See the description of the parameters, below, for more information.
Function | AgM9036_TriggerRoutingGetRouteConfiguration | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Function | AgM9036_TriggerRoutingGetSoftwareRouteTriggerState | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Function | AgM9036_TriggerRoutingResetRoute | This function resets and disables the trigger routing subsystem of the embedded system controller. While in a reset state, the external trigger connection and the PXI_TRIG backplane lines are in a high-impedance state, and the SoftwareTrigger property has no effect.
Function | AgM9036_TriggerRoutingSetRoute | This method configures how a trigger signal is routed through the embedded system controller. This is done by specifying a routing configuration through the M9036A embedded system controller and a single PXI_TRIG backplane trigger line.
Function | AgM9036_TriggerRoutingSetSoftwareRouteTriggerState | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Function | AgM9036_UnlockSession | Releases a previously obtained mutlithread lock.
Top


Attributes

Attributes

 | Name | Description
Attribute | AGM9036_ATTR_CACHE | Drivers may choose to always cache some instrument settings, never cache others, and optionally cache others, to avoid unecessary I/O to the instrument. If True, the driver caches optionally cached instrument settings.
Attribute | AGM9036_ATTR_DRIVER_SETUP | The driver setup string. It is either specified in the Configuration Store or passed in the OptionString parameter of the Initialize function. Driver setup is empty if the driver is not initialized.
Attribute | AGM9036_ATTR_GROUP_CAPABILITIES | This driver is not class compliant. If the driver is not class compliant, the driver returns an empty string.
Attribute | AGM9036_ATTR_INSTRUMENT_FIRMWARE_REVISION | The firmware revision reported by the physical instrument. If Simulation is enabled or the instrument is not capable of reporting the firmware revision, a string is returned that explains the condition.
Attribute | AGM9036_ATTR_INSTRUMENT_MANUFACTURER | The name of the manufacturer reported by the physical instrument.
Attribute | AGM9036_ATTR_INSTRUMENT_MODEL | The model number or name reported by the physical instrument.
Attribute | AGM9036_ATTR_INTERCHANGE_CHECK | The only valid value for this boolean property is False.
Attribute | AGM9036_ATTR_IO_RESOURCE_DESCRIPTOR | The resource descriptor specifies the connection to a physical device. It is either specified in the Configuration Store or passed in the ResourceName parameter of the Initialize function.
Attribute | AGM9036_ATTR_LOGICAL_NAME | Logical Name identifies a driver session in the Configuration Store. If Logical Name is not empty, the driver was initialized from information in the driver session. If it is empty, the driver was initialized without using the Configuration Store.
Attribute | AGM9036_ATTR_QUERY_INSTRUMENT_STATUS | This method is intended for instruments which run asynchronously and which store errors in an error queue for later retrieval. However, the M9036A always returns status immediately upon execution of each function. See Remarks for details.
Attribute | AGM9036_ATTR_RANGE_CHECK | Drivers may choose to always validate some property/parameter values, never validate others, and optionally validate others, to avoid sending invalid commands to the instrument. If True, the driver performs optional validations.
Attribute | AGM9036_ATTR_RECORD_COERCIONS | The only valid value for this boolean property is False.
Attribute | AGM9036_ATTR_SERIAL_NUMBER | The serial number of the embedded controller.
Attribute | AGM9036_ATTR_SIMULATE | If True, the driver does not perform I/O to the instrument, and returns simulated values for output parameters.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MAJOR_VERSION | Returns the major version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_CLASS_SPEC_MINOR_VERSION | Returns the minor version number of the class specification in accordance with which the IVI specific driver was developed. Zero is returned if the driver is not compliant with a class specification.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_DESCRIPTION | Returns a brief description of the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_PREFIX | Returns the case-sensitive prefix of the user-callable functions that the IVI-C specific driver exports. The string that this attribute returns contains a maximum of 32 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_REVISION | Returns version information about the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SPECIFIC_DRIVER_VENDOR | Returns the name of the vendor that supplies the IVI specific driver. The string that this attribute returns contains a maximum of 256 bytes including the NUL byte.
Attribute | AGM9036_ATTR_SUPPORTED_INSTRUMENT_MODELS | A comma-separated list of instrument models that the IVI specific driver can control. The string does not include an abbreviation for the manufacturer if it is the same for all models.
Attribute | AGM9036_ATTR_TRACE_ENABLED | If true, outputs a trace log of all driver calls to an XML file (in the same directory, by default, as the application accessing the driver). Generates default unique file names based on date and time. A new file is generated each time tracing is enabled.
Attribute | AGM9036_ATTR_TRIGGERROUTING_ENABLED | -- READ-ONLY -- Returns true if and only if the trigger routing subsystem of the embedded system controller is enabled. The SetRoute method configures and enables this subsystem. The ResetRoute and Reset methods disable this subsystem.
Attribute | AGM9036_ATTR_TRIGGERROUTING_PXI_TRIG | -- READ-ONLY -- Returns the backplane trigger line (PXI_TRIG0 to PXI_TRIG7) that is connected to the embedded system controller. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | AGM9036_ATTR_TRIGGERROUTING_ROUTE_CONFIGURATION | -- READ-ONLY -- Returns the current arrangement of interconnects between software-generated trigger, external connection, and backplane connection. Note that if the trigger routing system is in a reset state, the None enumeration will be returned.
Attribute | AGM9036_ATTR_TRIGGERROUTING_SOFTWARE_ROUTE_TRIGGER_STATE | This read-write property maintains the state of the software route trigger state. The software route trigger state is used when SetRoute has specified a configuration of "RouteSoftwareToTriggerBus" or "RouteSoftwareToTriggerBusAndExternal".
Top


Errors and Warnings

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Errors and Warnings

Errors

Name | Value (Hex) | Value (Decimal) | Description
AGM9036_ERROR_CANNOT_RECOVER | 0xBFFA0000 | -1074135040 | Failure cannot recover.
AGM9036_ERROR_INSTRUMENT_STATUS | 0xBFFA0001 | -1074135039 | Instrument error detected. Use ErrorQuery() to determine the error(s).
AGM9036_ERROR_CANNOT_OPEN_FILE | 0xBFFA0002 | -1074135038 | Cannot open file.
AGM9036_ERROR_READING_FILE | 0xBFFA0003 | -1074135037 | Error reading file.
AGM9036_ERROR_WRITING_FILE | 0xBFFA0004 | -1074135036 | Error writing file.
AGM9036_ERROR_INVALID_PATHNAME | 0xBFFA000B | -1074135029 | The pathname is invalid.
AGM9036_ERROR_INVALID_VALUE | 0xBFFA0010 | -1074135024 | Invalid value (%1) for method %2, parameter %3.
AGM9036_ERROR_FUNCTION_NOT_SUPPORTED | 0xBFFA0011 | -1074135023 | Does not support this class-compliant feature: method %1
AGM9036_ERROR_ATTRIBUTE_NOT_SUPPORTED | 0xBFFA0012 | -1074135022 | Does not support this class-compliant feature: property %1.
AGM9036_ERROR_VALUE_NOT_SUPPORTED | 0xBFFA0013 | -1074135021 | Does not support this class-compliant feature: (enumeration) value %1 passed as the value for parameter %2 in method %3.
AGM9036_ERROR_NOT_INITIALIZED | 0xBFFA001D | -1074135011 | A connection to the instrument has not been established.
AGM9036_ERROR_UNKNOWN_CHANNEL_NAME | 0xBFFA0020 | -1074135008 | Unknown channel name.
AGM9036_ERROR_TOO_MANY_OPEN_FILES | 0xBFFA0023 | -1074135005 | Too many files are open.
AGM9036_ERROR_CHANNEL_NAME_REQUIRED | 0xBFFA0044 | -1074134972 | A channel name is required.
AGM9036_ERROR_MISSING_OPTION_NAME | 0xBFFA0049 | -1074134967 | The option string is missing an option name.
AGM9036_ERROR_MISSING_OPTION_VALUE | 0xBFFA004A | -1074134966 | The option string is missing an option value.
AGM9036_ERROR_BAD_OPTION_NAME | 0xBFFA004B | -1074134965 | The %1 name in the option string is unknown.
AGM9036_ERROR_BAD_OPTION_VALUE | 0xBFFA004C | -1074134964 | The %1 value in the option string is unknown.
AGM9036_ERROR_OUT_OF_MEMORY | 0xBFFA0056 | -1074134954 | Could not allocate necessary memory.
AGM9036_ERROR_OPERATION_PENDING | 0xBFFA0057 | -1074134953 | Operation in progress.
AGM9036_ERROR_NULL_POINTER | 0xBFFA0058 | -1074134952 | Null pointer passed for method %1, parameter %2.
AGM9036_ERROR_UNEXPECTED_RESPONSE | 0xBFFA0059 | -1074134951 | Unexpected response from instrument.
AGM9036_ERROR_FILE_NOT_FOUND | 0xBFFA005B | -1074134949 | File not found.
AGM9036_ERROR_INVALID_FILE_FORMAT | 0xBFFA005C | -1074134948 | Invalid file format.
AGM9036_ERROR_STATUS_NOT_AVAILABLE | 0xBFFA005D | -1074134947 | The instrument status is not available.
AGM9036_ERROR_ID_QUERY_FAILED | 0xBFFA005E | -1074134946 | Instrument ID query failed.
AGM9036_ERROR_RESET_FAILED | 0xBFFA005F | -1074134945 | Instrument reset failed.
AGM9036_ERROR_RESOURCE_UNKNOWN | 0xBFFA0060 | -1074134944 | Unknown resource.
AGM9036_ERROR_ALREADY_INITIALIZED | 0xBFFA0061 | -1074134943 | The driver is already initialized.
AGM9036_ERROR_CANNOT_CHANGE_SIMULATION_STATE | 0xBFFA0062 | -1074134942 | The simulation state cannot be changed.
AGM9036_ERROR_INVALID_NUMBER_OF_LEVELS_IN_SELECTOR | 0xBFFA0063 | -1074134941 | The number of levels in the selector is not valid for the %1 repeated capability.
AGM9036_ERROR_INVALID_RANGE_IN_SELECTOR | 0xBFFA0064 | -1074134940 | The range %1 is not valid for the repeated capability %2.
AGM9036_ERROR_UNKOWN_NAME_IN_SELECTOR | 0xBFFA0065 | -1074134939 | Unknown name in selector.
AGM9036_ERROR_BADLY_FORMED_SELECTOR | 0xBFFA0066 | -1074134938 | The repeated capability selector is badly-formed.
AGM9036_ERROR_UNKNOWN_PHYSICAL_IDENTIFIER | 0xBFFA0067 | -1074134937 | Unknown physical repeated capability selector.
AGM9036_ERROR_PERSONALITY_NOT_ACTIVE | 0xBFFA4211 | -1074118127 | Personality is not active.
AGM9036_ERROR_PERSONALITY_NOT_INSTALLED | 0xBFFA4212 | -1074118126 | Personality is not installed.
AGM9036_ERROR_PERSONALITY_NOT_LICENSED | 0xBFFA4213 | -1074118125 | Personality is not licensed.
AGM9036_ERROR_IO_GENERAL | 0xBFFA4214 | -1074118124 | I/O error.
AGM9036_ERROR_IO_TIMEOUT | 0xBFFA4215 | -1074118123 | I/O timeout error.
AGM9036_ERROR_MODEL_NOT_SUPPORTED | 0xBFFA4216 | -1074118122 | Instrument model does not support this feature.
Top

Warnings

Name | Value (Hex) | Value (Decimal) | Description
AGM9036_SUCCESS | 0x3FFA0000 | 1073348608 | Success.
AGM9036_WARN_NSUP_ID_QUERY | 0x3FFA0065 | 1073348709 | ID Query is not supported by this instrument.
AGM9036_WARN_NSUP_RESET | 0x3FFA0066 | 1073348710 | Reset is not supported by this instrument.
AGM9036_WARN_NSUP_SELF_TEST | 0x3FFA0067 | 1073348711 | Self test is not supported by this instrument.
AGM9036_WARN_NSUP_ERROR_QUERY | 0x3FFA0068 | 1073348712 | Error query is not supported by this instrument.
AGM9036_WARN_NSUP_REV_QUERY | 0x3FFA0069 | 1073348713 | Firmware revision query is not supported by this instrument.
Top


Copyright

[image]

AgM9036 IVI Driver Reference Agilent Technologies
Copyright

Agilent Technologies may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Agilent Technologies, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

Copyright 2011 Agilent Technologies. All rights reserved.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.